/*
 Navicat MySQL Data Transfer

 Source Server         : codingmoretiny02
 Source Server Type    : MySQL
 Source Server Version : 80024
 Source Host           : 118.190.99.232
 Source Database       : codingmoretiny02

 Target Server Type    : MySQL
 Target Server Version : 80024
 File Encoding         : utf-8

 Date: 05/17/2022 19:40:20 PM
*/

SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";

-- ----------------------------
--  create database
-- ----------------------------
DROP DATABASE IF EXISTS `codingmore`;
CREATE DATABASE `codingmore`;
USE `codingmore`;

-- ----------------------------
--  Table structure for `admin_role_relation`
-- ----------------------------
DROP TABLE IF EXISTS `admin_role_relation`;
CREATE TABLE `admin_role_relation` (
  `admin_role_relation_id` bigint NOT NULL AUTO_INCREMENT,
  `users_id` bigint DEFAULT NULL COMMENT '用户id',
  `role_id` bigint DEFAULT NULL COMMENT '角色id',
  PRIMARY KEY (`admin_role_relation_id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='后台用户和角色关系表';

-- ----------------------------
--  Records of `admin_role_relation`
-- ----------------------------
BEGIN;
INSERT INTO `admin_role_relation` VALUES ('4', '2', '6'), ('5', '4', '6'), ('8', '1', '6'), ('18', '5', '6'), ('19', '5', '5'), ('21', '11', '8'), ('22', '14', '8');
COMMIT;

-- ----------------------------
--  Table structure for `comments`
-- ----------------------------
DROP TABLE IF EXISTS `comments`;
CREATE TABLE `comments` (
  `comment_id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `comment_post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '对应文章ID',
  `comment_author` tinytext COLLATE utf8mb4_unicode_520_ci COMMENT '评论者',
  `comment_author_email` varchar(100) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '评论者邮箱',
  `comment_author_url` varchar(200) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '评论者网址',
  `comment_author_ip` varchar(100) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '评论者IP',
  `comment_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '评论时间',
  `comment_content` text COLLATE utf8mb4_unicode_520_ci COMMENT '评论正文',
  `comment_approved` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '评论是否被批准',
  `comment_agent` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '评论者的USER AGENT',
  `comment_type` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '评论类型(pingback/普通)',
  `comment_parent` bigint unsigned NOT NULL DEFAULT '0' COMMENT '父评论ID',
  `user_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '评论者用户ID（不一定存在）',
  PRIMARY KEY (`comment_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='评论表';

-- ----------------------------
--  Table structure for `links`
-- ----------------------------
DROP TABLE IF EXISTS `links`;
CREATE TABLE `links` (
  `link_id` bigint unsigned NOT NULL AUTO_INCREMENT,
  `link_url` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '链接URL',
  `link_name` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '链接标题',
  `link_image` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '链接图片',
  `link_target` varchar(25) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '链接打开方式',
  `link_description` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '链接描述',
  `link_visible` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '是否可见（Y/N）',
  `link_owner` bigint unsigned NOT NULL DEFAULT '1' COMMENT '添加者用户ID',
  PRIMARY KEY (`link_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='链接信息表';

-- ----------------------------
--  Table structure for `menu`
-- ----------------------------
DROP TABLE IF EXISTS `menu`;
CREATE TABLE `menu` (
  `menu_id` bigint NOT NULL AUTO_INCREMENT,
  `parent_id` bigint DEFAULT NULL COMMENT '父级ID',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `title` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '菜单名称',
  `level` int DEFAULT NULL COMMENT '菜单级数',
  `sort` int DEFAULT NULL COMMENT '菜单排序',
  `name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '前端名称',
  `icon` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '前端图标',
  `hidden` int DEFAULT NULL COMMENT '前端隐藏',
  PRIMARY KEY (`menu_id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='后台菜单表';

-- ----------------------------
--  Records of `menu`
-- ----------------------------
BEGIN;
INSERT INTO `menu` VALUES ('3', '0', '2022-04-03 10:34:03', '内容管理', '0', '1', 'content-management', 'el-icon-s-help', '0'), ('4', '3', '2022-04-03 10:34:44', '创建文章', '1', '0', 'article-editing', 'el-icon-edit-outline', '0'), ('9', '3', '2022-04-03 22:29:02', '文章列表', '1', '0', 'article-management', 'iconpark-list-two', '0'), ('10', '0', '2022-04-03 22:29:34', '系统管理', '0', '0', 'system-management', 'el-icon-s-operation', '0'), ('11', '10', '2022-04-03 22:30:07', '站点配置', '1', '0', 'site-configuration', 'iconpark-config', '0'), ('12', '10', '2022-04-03 22:30:36', '用户管理', '1', '0', 'users-management', 'el-icon-user', '0'), ('13', '10', '2022-04-03 22:31:02', '角色管理', '1', '0', 'roles-management', 'iconfont-role-management', '0'), ('14', '10', '2022-04-03 22:31:40', '菜单管理', '1', '0', 'menus-management', 'iconfont-menu-management', '0'), ('15', '10', '2022-04-03 22:32:11', '资源管理', '1', '0', 'sources-management', 'iconfont-source-management', '0'), ('16', '10', '2022-04-03 22:32:48', '资源分类管理', '1', '0', 'source-categories-management', 'el-icon-coin', '0'), ('20', '3', '2022-04-17 22:28:36', '编辑文章', '1', '0', 'article-modify', 'el-icon-edit-outline', '0'), ('21', '3', '2022-04-20 00:57:35', '标签管理', '1', '0', 'tag-management', 'iconfont-tag-management', '0');
COMMIT;

-- ----------------------------
--  Table structure for `post_tag`
-- ----------------------------
DROP TABLE IF EXISTS `post_tag`;
CREATE TABLE `post_tag` (
  `post_tag_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'post_tag_id',
  `description` longtext COLLATE utf8mb4_unicode_520_ci COMMENT '标签名称',
  PRIMARY KEY (`post_tag_id`)
) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='标签表';

-- ----------------------------
--  Records of `post_tag`
-- ----------------------------
BEGIN;
INSERT INTO `post_tag` VALUES ('3', 'css'), ('4', 'Java'), ('5', '测2'), ('6', '测试33344'), ('7', 'php'), ('8', 'hadoop'), ('9', '标签2'), ('10', '标签1'), ('11', '标签3'), ('12', '测试6'), ('13', '测试4'), ('15', 'Redis 等等等等'), ('17', '测试'), ('18', '2'), ('19', '7'), ('20', '修改13'), ('21', '3'), ('22', '4'), ('23', 'serverless'), ('24', '5'), ('25', '6'), ('26', '21'), ('27', 'Redis'), ('29', '8'), ('30', '9');
COMMIT;

-- ----------------------------
--  Table structure for `post_tag_relation`
-- ----------------------------
DROP TABLE IF EXISTS `post_tag_relation`;
CREATE TABLE `post_tag_relation` (
  `post_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '对应文章ID',
  `post_tag_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '标签ID',
  `term_order` int NOT NULL DEFAULT '0' COMMENT '排序',
  PRIMARY KEY (`post_id`,`post_tag_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='标签文章关系表';

-- ----------------------------
--  Records of `post_tag_relation`
-- ----------------------------
BEGIN;
INSERT INTO `post_tag_relation` VALUES ('2', '3', '0'), ('4', '15', '0'), ('5', '6', '0'), ('8', '9', '0'), ('8', '10', '0'), ('8', '11', '0'), ('8', '12', '0'), ('8', '13', '0'), ('12', '19', '2'), ('12', '24', '0'), ('12', '25', '1'), ('13', '3', '5'), ('14', '19', '0'), ('14', '29', '1'), ('14', '30', '2'), ('17', '18', '0'), ('17', '21', '1'), ('17', '22', '2'), ('17', '24', '3'), ('35', '18', '0'), ('35', '19', '1'), ('35', '20', '2'), ('35', '21', '3'), ('35', '22', '4'), ('42', '22', '0'), ('42', '24', '1'), ('42', '25', '2'), ('43', '26', '0'), ('44', '18', '0'), ('45', '19', '3'), ('45', '21', '0'), ('45', '24', '1'), ('45', '25', '2'), ('46', '18', '0'), ('46', '21', '1'), ('51', '21', '0'), ('62', '21', '0'), ('63', '19', '2'), ('63', '21', '1'), ('63', '22', '0'), ('65', '22', '0');
COMMIT;

-- ----------------------------
--  Table structure for `posts`
-- ----------------------------
DROP TABLE IF EXISTS `posts`;
CREATE TABLE `posts` (
  `posts_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'posts_id',
  `post_author` bigint unsigned DEFAULT '0' COMMENT '对应作者ID',
  `post_date` datetime DEFAULT NULL COMMENT '发布时间',
  `post_content` longtext COLLATE utf8mb4_unicode_520_ci COMMENT '正文',
  `post_title` text COLLATE utf8mb4_unicode_520_ci COMMENT '标题',
  `post_excerpt` text COLLATE utf8mb4_unicode_520_ci COMMENT '摘录',
  `post_status` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '文章状态',
  `comment_status` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '评论状态',
  `post_modified` datetime DEFAULT NULL COMMENT '修改时间',
  `menu_order` int NOT NULL DEFAULT '0' COMMENT '排序ID',
  `post_type` varchar(20) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '文章类型（post/page等）',
  `comment_count` bigint DEFAULT '0' COMMENT '评论总数',
  `attribute` json DEFAULT NULL COMMENT '属性',
  `html_content` text COLLATE utf8mb4_unicode_520_ci COMMENT '正文html',
  `page_view` bigint DEFAULT NULL COMMENT '浏览量',
  PRIMARY KEY (`posts_id`)
) ENGINE=InnoDB AUTO_INCREMENT=68 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='文章';

-- ----------------------------
--  Records of `posts`
-- ----------------------------
BEGIN;
INSERT INTO `posts` VALUES ('7', '5', '2022-02-13 00:21:25', '测试6', '测试6', '测试6', 'DRAFT', null, '2022-02-13 04:29:13', '0', 'POST', '0', '{\"isBold\": true, \"textColor\": \"blue\", \"rightButton\": {\"show\": true, \"linkTo\": \"http://www.baidu.com\", \"bgColor\": \"green\", \"linkType\": \"1\", \"textContent\": \"查看更多1\"}}', null, '0'), ('11', '5', '2022-02-13 00:29:47', '测试10', '测试10', '', 'DRAFT', null, '2022-03-21 23:14:29', '0', 'POST', '0', null, null, '0'), ('12', '4', '2022-02-13 08:54:50', 'dsfds', '你好2', 'dd', 'PUBLISHED', null, '2022-03-21 23:14:28', '0', 'POST', '0', '{\"articleCoverUrl\": \"\"}', '<p>dsfds</p>\n', '1'), ('13', '4', '2022-02-13 08:55:04', 'sdfs', '内容123', '', 'PUBLISHED', null, '2022-02-13 09:15:34', '0', 'POST', '0', '{\"ren\": \"watch\"}', null, '1'), ('14', '4', '2022-02-13 09:15:18', 'dsfds', '你好3', 'dd', 'PUBLISHED', null, '2022-03-21 23:14:27', '0', null, '0', '{\"ren\": \"watch\"}', '<p>dsfds</p>\n', '1'), ('16', '1', '2022-02-19 11:42:11', '121212', '1111', '', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}}', null, '0'), ('17', '1', '2022-02-19 11:42:27', '# To Be Better Javaer，Java 程序员进阶之路 - 通俗易懂、风趣幽默![不知道不敢问.jpg](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/585683da-cc37-4cab-ac8f-6115d8e0cd27.jpg)![成都.jpeg](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ff129cce-bbbe-413f-ab0a-7efee038cde4.jpeg)![成都.jpeg](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/44bba01f-8ae9-41b7-9d6a-1649b8049b90.jpeg)\n\n![不知道不敢问.jpg](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/2c3e36b2-aa42-4ec3-bb7e-ec33348602f8.jpg)\n\n<p align=\"center\">\n  <a href=\"https://tobebetterjavaer.com\">\n    <img src=\"https://cdn.jsdelivr.net/gh/itwanger/toBeBetterJavaer/images/logo-01.png\" width=\"260px\" alt=\"Java 程序员进阶之路\">\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/itwanger/toBeBetterJavaer\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Github-toBeBetterJavaer-red.svg\"></a>\n  <a href=\"https://gitee.com/itwanger/toBeBetterJavaer\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Gitee-toBeBetterJavaer-blue.svg\"></a>\n  <a href=\"https://space.bilibili.com/513340480\" target=\"_blank\"><img src=\"https://img.shields.io/badge/bilibili-哔哩哔哩-critical\"></a>\n  <a href=\"https://mp.weixin.qq.com/s/ePhaYezFblgt0NgbvtWqww\" target=\"_blank\">\n    <img src=\"https://img.shields.io/badge/计算机经典电子书-下载-green.svg\" alt=\"无套路下载\">\n  </a>\n</p>\n\n>Java 程序员进阶之路，据说每一个优秀的 Java 程序员都喜欢她，风趣幽默、通俗易懂。内容包括 Java 基础、Java 并发编程、Java 虚拟机、Java 企业级开发、Java 面试等核心知识点。学 Java，就认准 Java 程序员进阶之路?。\n\n<a href=\"https://mp.weixin.qq.com/s/US5nTxbC2nYc1hWpn5Bozw\" target=\"_blank\">? 我整理汇总了 10 本优质的 Java 面试相关的 PDF（质量很高！不要再看网上的那些东拼西凑的垃圾面试题了！），点击下载，希望对需要的小伙伴有帮助！</a>\n\n\n# 为什么会有这个开源知识库\n\n> [!TIP]\n>  本站取名 **toBeBetterJavaer**，即 **To Be Better Javaer**，意为「成为一名更好的 Java 程序员」，是自学 Java 以来所有原创文章和学习资料的大聚合。\n>  \n>  旨在为学习 Java 的小伙伴提供一系列：\n>  - **优质的原创 Java 教程**\n>  - **全面清晰的 Java 学习路线**\n>  - **免费但靠谱的 Java 学习资料**\n>  - **精选的 Java 岗求职面试指南**\n>  - **Java 企业级开发所需的高效工具**\n>\n> 赠人玫瑰手有余香。知识库会持续保持**更新**，欢迎收藏品鉴！\n\n\n# 知识库地图\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/80ccad16-4f30-4a71-aff6-e3352c785e57.png)\n\n# Java基础\n\n\n> [!ATTENTION]\n>  - **Java 基础是非常重要的**！所谓基础不牢，地动山摇，很多初学者在初学阶段容易按捺不住，三天打鱼两天晒网，这就会导致后面的学习非常的吃力，所以我的建议是一定要肯花时间花精力把基础部分学扎实了，再开始学习后面的内容。\n>  - Java 基础部分可以分为基础篇和进阶篇，基础篇包括基础语法、面向对象、集合框架、异常处理，以及字符串和数组等等重要知识点；进阶篇包括 Java IO、Java 并发编程、Java 虚拟机等等。\n>  - 入门阶段，一定要多 coding，不要眼高手低，很多看起来会的知识可能真正实操起来就会出现各种各样的问题，那么只有通过多记多练才能迎刃而解。\n\n\n## 基础篇\n\n\n### Java概述\n\n- [什么是 Java？](docs/overview/what-is-java.md)\n- [Java 的发展简史](docs/overview/java-history.md)\n- [Java 的优势](docs/overview/java-advantage.md)\n- [JDK 和 JRE 有什么区别？](docs/overview/jdk-jre.md)\n- [手把手教你安装集成开发环境 Intellij IDEA](docs/overview/idea.md)\n- [第一个 Java 程序：Hello World](docs/overview/hello-world.md)\n\n\n### Java基础语法\n\n- [基本数据类型](docs/basic-grammar/basic-data-type.md)\n- [流程控制](docs/basic-grammar/flow-control.md)\n- [运算符](docs/basic-grammar/operator.md)\n- [注释](docs/basic-grammar/javadoc.md)\n\n### 面向对象\n\n- [什么是对象？什么是类](docs/oo/object-class.md)\n- [变量](docs/oo/var.md)\n- [方法](docs/oo/method.md)\n- [构造方法](docs/oo/construct.md)\n- [代码初始化块](docs/oo/code-init.md)\n- [抽象类](docs/oo/abstract.md)\n- [接口](docs/oo/interface.md)\n- [static 关键字](docs/oo/static.md)\n- [this 和 super 关键字](docs/oo/this-super.md)\n- [final 关键字](docs/oo/final.md)\n- [instanceof 关键字](docs/oo/instanceof.md)\n- [不可变对象](docs/basic-extra-meal/immutable.md)\n- [可变参数](docs/basic-extra-meal/varables.md)\n- [泛型](docs/basic-extra-meal/generic.md)\n- [注解](docs/basic-extra-meal/annotation.md)\n- [枚举](docs/basic-extra-meal/enum.md)\n- [反射](docs/basic-extra-meal/fanshe.md)\n\n### 字符串String\n\n- [String 为什么是不可变的？](docs/string/immutable.md)\n- [字符串常量池](docs/string/constant-pool.md)\n- [深入浅出 String.intern](docs/string/intern.md)\n- [如何比较两个字符串是否相等？](docs/string/equals.md)\n- [如何拼接字符串？](docs/string/join.md)\n- [如何拆分字符串？](docs/string/split.md)\n\n### 数组\n\n- [什么是数组？](docs/array/array.md)\n- [如何打印数组？](docs/array/print.md)\n\n### 集合框架（容器）\n\n- [Java 中的集合框架该如何分类？](docs/collection/gailan.md)\n- [简单介绍下时间复杂度](docs/collection/big-o.md)\n- [ArrayList](docs/collection/arraylist.md)\n- [LinkedList](docs/collection/linkedlist.md)\n- [ArrayList 和 LinkedList 之增删改查的时间复杂度](docs/collection/list-war-1.md)\n- [ArrayList 和 LinkedList 的实现方式以及性能对比](docs/collection/list-war-2.md)\n- [Iterator与Iterable有什么区别？](docs/collection/iterator-iterable.md)\n- [为什么阿里巴巴强制不要在 foreach 里执行删除操作](docs/collection/fail-fast.md)\n- [详细讲解 HashMap 的 hash 原理](docs/collection/hash.md)\n- [详细讲解 HashMap 的扩容机制](docs/collection/hashmap-resize.md)\n- [HashMap 的加载因子为什么是 0.75？](docs/collection/hashmap-loadfactor.md)\n- [为什么 HashMap 是线程不安全的？](docs/collection/hashmap-thread-nosafe.md)\n\n\n### 异常处理\n\n- [聊聊异常处理机制](docs/exception/gailan.md)\n- [关于 try-catch-finally](docs/exception/try-catch-finally.md)\n- [关于 throw 和 throws](docs/exception/throw-throws.md)\n- [关于 try-with-resouces](docs/exception/try-with-resouces.md)\n- [异常处理机制到底该怎么用？](docs/exception/shijian.md)\n\n### 常用工具类\n\n- [数组工具类：Arrays](docs/common-tool/arrays.md)\n- [集合工具类：Collections](docs/common-tool/collections.md)\n- [简化每一行代码工具类：Hutool](docs/common-tool/hutool.md)\n- [Guava，拯救垃圾代码，效率提升N倍](docs/common-tool/guava.md)\n\n### 重要知识点\n\n- [Java 中常用的 48 个关键字](docs/basic-extra-meal/48-keywords.md)\n- [Java 命名的注意事项](docs/basic-extra-meal/java-naming.md)\n- [详解 Java 的默认编码方式 Unicode](docs/basic-extra-meal/java-unicode.md)\n- [new Integer(18)与Integer.valueOf(18)有什么区别？](docs/basic-extra-meal/int-cache.md)\n- [聊聊自动拆箱与自动装箱](docs/basic-extra-meal/box.md)\n- [浅拷贝与深拷贝究竟有什么不一样？](docs/basic-extra-meal/deep-copy.md)\n- [为什么重写 equals 时必须重写 hashCode 方法？](docs/basic-extra-meal/equals-hashcode.md)\n- [方法重载和方法重写有什么区别？](docs/basic-extra-meal/override-overload.md)\n- [Java 到底是值传递还是引用传递？](docs/basic-extra-meal/pass-by-value.md)\n- [Java 不能实现真正泛型的原因是什么？](docs/basic-extra-meal/true-generic.md)\n- [Java 程序在编译期发生了什么？](docs/basic-extra-meal/what-happen-when-javac.md)\n- [Comparable和Comparator有什么区别？](docs/basic-extra-meal/comparable-omparator.md)\n- [Java IO 流详细划分](docs/io/shangtou.md)\n\n\n## 进阶篇\n\n> [!ATTENTION]\n>  如果你想成为一名高质量的 Java 程序员，那么 Java 并发编程和 Java 虚拟机是必须要熟练掌握的！\n\n### Java并发编程\n\n- [室友打一把王者就学会了多线程](docs/thread/wangzhe-thread.md)\n- [为什么阿里要禁用Executors创建线程池？](https://mp.weixin.qq.com/s/dd_IPt7lQQeIMH7YTdgLIw)\n- [60张手绘图，一举拿下Java并发！](https://mp.weixin.qq.com/s/bImCIoYsH_JEzTkBx2lj4A)\n\n### Java虚拟机\n\n- [JVM 是什么？](docs/jvm/what-is-jvm.md)\n\n\n\n# Java企业级开发\n\n> [!ATTENTION]\n>  - **到底能不能成为一名合格的 Java 程序员，从理论走向实战？Java 企业级开发这部分内容就是一个分水岭**！\n>  - Java 企业级开发这部分可以分为工具篇、框架篇、安全篇、分布式、高性能、高可用和实战篇等等。\n>  - 纸上得来终觉浅，须知此事要躬行。\n\n\n## 基建篇\n\n### Maven\n\n> [!ATTENTION]\n>  Maven 是一个项目管理工具，可以对 Java 项目进行构建、依赖管理。\n\n- [手把手教你安装、配置、使用 Maven](docs/maven/maven.md)\n- [守护版 Maven 来了！！！性能提升 300%](docs/maven/mvnd.md)\n\n\n### Git\n\n> [!ATTENTION]\n>  Git 是 Linus Torvalds 为了帮助管理 Linux 内核而开发的一个开源的版本控制软件，绝大多数项目源码和文档都会采用 Git 来进行版本控制。\n\n- [可能是 Git 历史上最伟大的一次代码提交](docs/git/git-qiyuan.md)\n- [终于有人把 Git 的数据模型讲清楚了](docs/git/shujujiegou.md)\n- [昨晚看完 Linus 第一次提交的 Git 代码后，我失眠了！](docs/git/neibushixian.md)\n- [要熟练使用 Git，恐怕要记住这60个命令](docs/git/mingling.md)\n- [崩溃！实习生把小组的代码仓库搞得一团糟。。。](docs/git/jibenshiyong.md)\n- [信不信，7 张图就能让你把 Git 分支管理拿捏的死死的。。](docs/git/fenzhi.md)\n- [豆瓣9.1分！我昨天在挂急诊时啃完了这本书！](docs/git/progit.md)\n- [一条 Git 命令减少了一半存储空间，我的服务器在偷着笑](docs/git/sparse-checkout.md)\n\n### Nginx\n\n> [!ATTENTION]\n>  Nginx是一款轻量级的 Web 服务器/反向代理服务器，占有内存少，并发能力强。\n\n- [Nginx 入门教程，敲简单，10 分钟搞定](docs/nginx/nginx.md)\n\n### Logback\n\n> [!ATTENTION]\n>  线上问题的追踪离不开日志框架，Logback 是 Spring Boot 默认的日志框架。\n\n- [Logback这样配置，性能提升10倍！](https://mp.weixin.qq.com/s/dO1dYAHwyB-81L1z3D_sdg)\n\n\n## 工具篇\n\n### Intellij IDEA\n\n> [!ATTENTION]\n>  业界公认的最好的 Java 基础开发环境。\n\n- [阅读源码必备的4个 IDEA 高级调试技巧](https://mp.weixin.qq.com/s/KG0yzb_9XhhTSzjHr4DkIQ)\n\n\n### 辅助工具\n\n> [!ATTENTION]\n>  一些可以提高工作效率的工具，甚至可以替代付费工具。\n\n- [再见Postman！推荐一款更适合国人的接口管理工具ApiPost！](https://mp.weixin.qq.com/s/ZgkNQsve_vq6Xq0_gnWHCw)\n- [再见了VMware，推荐一款更轻量级的虚拟机Multipass！](https://mp.weixin.qq.com/s/gy6dVHvNy495bqov6JOAdA)\n- [再见了Swagger，推荐七款可以替代的在线文档生成神器](https://mp.weixin.qq.com/s/tEwVadscpaUI5uR6aiTZkQ)\n- [干掉visio，这款在线的画图神器 drwa.io 真的绝了！！！](https://mp.weixin.qq.com/s/EaGCe4GRG2C-0zuVxWxl5A)\n- [干掉 Xshell？Tabby这款开源的终端工具逼格更高！](docs/gongju/tabby.md)\n- [干掉PowerDesigner，这款开源数据库设计神器chiner真的绝了](docs/gongju/chiner.md)\n- [再见收费的Navicat！操作所有数据库就靠它了！](docs/gongju/DBeaver.md)\n\n## 框架篇\n\n### SpringBoot\n\n> [!ATTENTION]\n>  SpringBoot 不仅继承了Spring框架原有的优秀特性，而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突，以及引用的不稳定性等问题得到了很好的解决。\n\n- [一分钟快速搭建 Spring Boot 项目](docs/springboot/initializr.md)\n- [基于SpringBoot 的CMS系统，拿去开发企业官网真香](https://mp.weixin.qq.com/s/HWTVu7E62VkaH2anQc1J_g)\n- [Spring Boot为什么不需要额外安装Tomcat？](docs/springboot/tomcat.md)\n- [Spring Boot 3.0 M1 发布，正式弃用 Java 8](https://mp.weixin.qq.com/s/FmRyF6RcCodb8vUBem8dAA)\n\n\n\n## 安全篇\n\n## 分布式\n\n## 高性能\n\n### 消息队列\n\n> [!ATTENTION]\n>  消息队列是一种异步的服务间通信方式，适用于无服务器和微服务架构，用于分离重量级处理、缓冲或批处理工作以及缓解高峰期工作负载。\n\n- [敢在简历上写精通消息队列，果然有一手！](https://mp.weixin.qq.com/s/UKWOyS90O6R_y1YEdF_JjQ)\n\n\n## 高可用\n\n## 实战篇\n\n### 开源项目\n\n> [!ATTENTION]\n>  GitHub 上、码云上一些高 star 的优质项目推荐，优质的轮子极大地提高了开发效率。\n\n- [EasyPoi实现Excel导入导出，好用到爆，POI可以扔掉了！](https://mp.weixin.qq.com/s/H2Bwc-7ghcjyaEnKUTQ5Dg)\n- [SpringBoot 实现 Excel 导入导出，性能爆表，用起来够优雅！](https://mp.weixin.qq.com/s/Knb7b-uYLWsKZfgvGgN_ug)\n- [再见丑陋的SwaggerUI，这款开源的API文档生成神器 knife4j 界面更炫酷，逼格更高！](docs/gongju/knife4j.md)\n- [取代 Mybatis Generator，这款代码生成神器配置更简单，开发效率更高！](docs/kaiyuan/auto-generator.md)\n\n### 问题解析\n\n> [!ATTENTION]\n>  开发过程中遇到的一些典型问题，该如何解决？\n\n- [Log4j2突发重大漏洞](docs/shigu/log4j2.md)\n- [重现了一波 Log4j2 核弹级漏洞，同事的电脑沦为炮灰](https://mp.weixin.qq.com/s/zXzJVxRxMUnoyJs6_NojMQ)\n- [生成订单30分钟未支付，则自动取消，该怎么实现？](https://mp.weixin.qq.com/s/J6jb_Dt3C49CIjYBTrN4gQ)\n- [西安一码通又崩了！难道又不小心回滚到上个版本？](https://mp.weixin.qq.com/s/TaFohrRetiCKEf7ZKESBaQ)\n- [半月崩两次，从技术角度再来聊聊一码通](https://mp.weixin.qq.com/s/dKsneRKW7G9dvtr9NzefEA)\n- [使用MQ的时候，怎么确保消息100%不丢失？](https://mp.weixin.qq.com/s/lJdYpH94qGm5Q0pkgfjHTQ)\n\n\n# 数据库\n\n## Redis\n\n> [!ATTENTION]\n>  Redis（Remote Dictionary Server )，即远程字典服务，是一个用 C语言编写的，支持网络、可基于内存和可持久化日志的键值对数据库。\n\n\n\n\n# 计算机基础\n\n\n# 求职面试\n\n> [!ATTENTION]\n>  - **学习了那么多 Java 知识，耗费了无数的脑细胞，熬掉了无数根秀发，为的是什么？当然是谋取一份心仪的 offer 了**。那八股文、面试题、城市选择、优质面经又怎能少得了呢？\n>  - 千淘万漉虽辛苦，吹尽狂沙始到金。\n\n## 八股文\n\n- [Java 高频面试题 34 道](docs/baguwen/java-basic-34.md)\n- [Java 基础八股文（背诵版）](docs/baguwen/java-basic.md)\n- [HashMap 精选面试题](docs/collection/hashmap-interview.md)\n- [Java 并发编程八股文（背诵版）](docs/baguwen/java-thread.md)\n- [Java 虚拟机八股文（背诵版）](docs/baguwen/jvm.md)\n\n## 面试经验\n\n- [上岸杭州阿里云](docs/mianjing/shanganaliyun.md)\n- [面试官：看你简历上写了Redis，请回答一下这 12 个问题](docs/mianjing/redis12question.md)\n\n## 城市选择\n\n- [北京都有哪些牛逼的互联网公司？](https://mp.weixin.qq.com/s/xlPZfpd89rDq6L-Me80wnw)\n- [广州都有哪些牛逼的互联网公司？](https://mp.weixin.qq.com/s/uZQ8p0ytsQFXzt5ppzx6fA)\n- [深圳有哪些牛批的互联网公司？](https://mp.weixin.qq.com/s/hBU-eEUq8aN5PWwdZFmC4g)\n- [西安有哪些不错的互联网公司？](https://mp.weixin.qq.com/s/s0Ub1CHC9eEi0YrqPrnRog)\n- [青岛有牛逼的互联网公司吗？](https://mp.weixin.qq.com/s/8QQvOrkG3Vdjj3GxP1zxBQ)\n- [郑州有哪些不错的互联网公司？](https://mp.weixin.qq.com/s/SU9drg2xJKcheIwJ6OSSBQ)\n- [苏州有哪些牛逼的互联网公司？](https://mp.weixin.qq.com/s/cnYsZLudFOwv5EKYMsMh0Q)\n- [南京有哪些靠谱的互联网公司？](https://mp.weixin.qq.com/s/CfZ1CEmtPOP4TAwAs8Ocrw)\n- [杭州有哪些顶级的互联网公司？](docs/cityselect/hangzhou.md)\n\n\n# 学习资源\n\n> [!ATTENTION]\n>  **这里会推荐一些优质的简历模板、技术手册、硬核 PDF、在线教程和在线教学视频，帮助大家在学习的道路上少走一些弯路**。\n\n## 资料下载\n\n## 资源推荐\n\n> [!ATTENTION]\n>  **有 GitHub、码云、B 站、Coursera、个人博客、知识库网站上公开的免费课程，也有极客时间上付费专栏，慕课上的教学视频等**。\n\n### 在线教程\n\n### 在线教学视频\n\n- [推荐 2 个 Java 练手项目（云E办、仿网易云音乐）](docs/kaiyuan/yuneban-wangyiyunyinyue.md)\n\n# 程序人生\n\n> [!ATTENTION]\n>  **程序员的人生不仅有代码，还有诗和远方**。br><br>\n>  人间烟火味，最抚凡人心。\n\n## 码农生活\n\n- [中美程序员不完全对比](https://mp.weixin.qq.com/s/KByt42RiDtt2aWpN4klmKg)\n- [降薪 45%，从互联网回到国企](https://mp.weixin.qq.com/s/qHGdIuA32X-zydbMTKDPuA)\n- [学弟在微软的这六个月](https://mp.weixin.qq.com/s/08Ax1ArAjchemjUXih7zNw)\n- [找个程序员做老公/男票有多爽？？？](https://mp.weixin.qq.com/s/mK0yaen1mhCoWZ6ZLC5vQg)\n- [研究所月入两万，是什么体验？](docs/manongshenghuo/yanjiusuo-20wan.md)\n\n## 闲聊唠嗑\n\n- [大学计算机系最努力的同学都是如何学习的？](docs/xianliaolaoke/daxue-nuli-jisuanji.md)\n\n# 联系作者\n\n## 关于作者\n\n- 一名普通的 Java 后端开发者，热爱学习\n- 目前在洛阳栖息，虽然处在一片互联网沙漠，却心存妄想，想要在这片土地上开垦出一片属于自己的田地\n- 参加工作以后越来越理解交流和分享的重要性，在不停地汲取营养的同时，也希望自己的分享去帮助到小伙伴们\n- Java 程序员进阶之路，不仅是我自学 Java 以来所有的原创文章和学习资料的大聚合，更是我向这个世界传播知识的一个窗口。\n\n## 心路历程\n\n- [Java 程序员进阶之路网站上线了，颜值贼高！](docs/szjy/tobebetterjavaer-wangzhan-shangxian.md)\n- [273 块钱购入的域名，值了！](docs/szjy/tobebetterjavaer-yuming-jiexi.md)\n- [3 年9.9元，HTTP升级到HTTPS，值了！](docs/szjy/tobebetterjavaer-https.md)\n- [30天，终于搞定域名备案！](docs/szjy/tobebetterjavaer-beian.md)\n\n## 联系方式\n\n- **技术交流群**\n\n    本群的宗旨是给大家提供一个良好的技术学习交流平台，所以杜绝一切广告！<br>由于微信群人满 100 之后无法加入，请先添加作者微信「qing_geee」（也可以扫描下方的二维码），备注：加群。\n    \n    <div align=\"left\">\n        <img src=\"https://cdn.jsdelivr.net/gh/itwanger/toBeBetterJavaer/images/qing_geee.png\" width=\"260px\">\n    </div>\n\n- **原创公众号**\n\n    本号的slogan：技术文通俗易懂，吹水文风趣幽默。<br>目前已有 10 万+读者关注，微信搜索「**沉默王二**」（也可以扫描下方的二维码）就可以关注作者了。\n    \n    <div align=\"left\">\n        <img src=\"https://cdn.jsdelivr.net/gh/itwanger/toBeBetterJavaer/images/gongzhonghao.png\" width=\"260px\">\n    </div>\n\n    关注后，回复关键字「**00**」可以获取更多优质的 Java 学习资料。\n    \n    \n- **star 趋势图**\n\n[![Stargazers over time](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ff911775-5e31-4e09-867f-660fa8f1b163.svg)](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ff911775-5e31-4e09-867f-660fa8f1b163)\n\n- **捐赠鼓励**\n\n开源不易，如果《Java 程序员进阶之路》对你有些帮助，可以请作者喝杯咖啡，算是对开源做出的一点点鼓励吧！\n\n<div align=\"left\">\n    <img src=\"https://cdn.jsdelivr.net/gh/itwanger/toBeBetterJavaer/images/weixin-zhifu.png\" width=\"260px\">\n</div>\n\n:gift_heart: 感谢大家对我资金的赞赏，每隔一个月会统计一次。\n\n时间|小伙伴|赞赏金额\n---|---|---\n2022-01-28|G*R|6.6元\n2022-01-20|*光|50元\n2022-01-14|*浩|1元\n2022-01-01|马伟谊|6.6元\n2022-01-01|刚刚好|3.6元\n2021-12-20|t*1|5 元\n2021-10-26|*鱼|28 元\n2021-10-11|*人|28 元\n2021-09-01|S*n|6.6 元\n2021-08-02|*秒|1 元\n2021-06-13|*7| 28 元\n2021-04-29|pebble|2 元\n\n\n\n- **参与贡献**\n\n1. 如果你对本项目有任何建议或发现文中内容有误的，欢迎提交 issues 进行指正。\n2. 对于文中我没有涉及到知识点，欢迎提交 PR。\n\n\n![1647740436.jpg](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/cbd6d793-01e6-41fa-a578-0ce921643ddb.jpg)', '1212大 仨三大爱读书爱上啊', '啊打算上的啊少时诵诗书所所所所所所所所所所所所所所所所所所所所所所所所所少时诵诗书所所所所所所所所所所所所所所所所所所所所所所阿萨德阿萨德    三大萨达发生少时诵诗书所所所所所所所所所所萨达发生的士', 'PUBLISHED', null, '2022-03-21 15:47:01', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}, \"articleCoverUrl\": \"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/d550efac-cabc-4389-867e-94e2cfdc68ef.jpg\"}', '<h1><a id=\"To_Be_Better_JavaerJava___jpghttpsitwangerossosscnbeijingaliyuncscomcodingmoreimages20220321585683dacc374cabac8f6115d8e0cd27jpgjpeghttpsitwangerossosscnbeijingaliyuncscomcodingmoreimages20220321ff129ccebbbe413fab0a7efee038cde4jpegjpeghttpsitwangerossosscnbeijingaliyuncscomcodingmoreimages2022032144bba01f8ae941b79d6a1649b8049b90jpeg_0\"></a>To Be Better Javaer，Java 程序员进阶之路 - 通俗易懂、风趣幽默<img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/585683da-cc37-4cab-ac8f-6115d8e0cd27.jpg\" alt=\"不知道不敢问.jpg\" /><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ff129cce-bbbe-413f-ab0a-7efee038cde4.jpeg\" alt=\"成都.jpeg\" /><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/44bba01f-8ae9-41b7-9d6a-1649b8049b90.jpeg\" alt=\"成都.jpeg\" /></h1>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/2c3e36b2-aa42-4ec3-bb7e-ec33348602f8.jpg\" alt=\"不知道不敢问.jpg\" /></p>\n<p>\n  <a href=\"https://tobebetterjavaer.com\">\n    <img src=\"https://cdn.jsdelivr.net/gh/itwanger/toBeBetterJavaer/images/logo-01.png\" width=\"260px\" alt=\"Java 程序员进阶之路\">\n  </a>\n</p>\n<p>\n  <a href=\"https://github.com/itwanger/toBeBetterJavaer\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Github-toBeBetterJavaer-red.svg\"></a>\n  <a href=\"https://gitee.com/itwanger/toBeBetterJavaer\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Gitee-toBeBetterJavaer-blue.svg\"></a>\n  <a href=\"https://space.bilibili.com/513340480\" target=\"_blank\"><img src=\"https://img.shields.io/badge/bilibili-哔哩哔哩-critical\"></a>\n  <a href=\"https://mp.weixin.qq.com/s/ePhaYezFblgt0NgbvtWqww\" target=\"_blank\">\n    <img src=\"https://img.shields.io/badge/计算机经典电子书-下载-green.svg\" alt=\"无套路下载\">\n  </a>\n</p>\n<blockquote>\n<p>Java 程序员进阶之路，据说每一个优秀的 Java 程序员都喜欢她，风趣幽默、通俗易懂。内容包括 Java 基础、Java 并发编程、Java 虚拟机、Java 企业级开发、Java 面试等核心知识点。学 Java，就认准 Java 程序员进阶之路?。</p>\n</blockquote>\n<p><a href=\"https://mp.weixin.qq.com/s/US5nTxbC2nYc1hWpn5Bozw\" target=\"_blank\">? 我整理汇总了 10 本优质的 Java 面试相关的 PDF（质量很高！不要再看网上的那些东拼西凑的垃圾面试题了！），点击下载，希望对需要的小伙伴有帮助！</a></p>\n<h1><a id=\"_24\"></a>为什么会有这个开源知识库</h1>\n<blockquote>\n<p>[!TIP]<br />\n本站取名 <strong>toBeBetterJavaer</strong>，即 <strong>To Be Better Javaer</strong>，意为「成为一名更好的 Java 程序员」，是自学 Java 以来所有原创文章和学习资料的大聚合。</p>\n<p>旨在为学习 Java 的小伙伴提供一系列：</p>\n<ul>\n<li><strong>优质的原创 Java 教程</strong></li>\n<li><strong>全面清晰的 Java 学习路线</strong></li>\n<li><strong>免费但靠谱的 Java 学习资料</strong></li>\n<li><strong>精选的 Java 岗求职面试指南</strong></li>\n<li><strong>Java 企业级开发所需的高效工具</strong></li>\n</ul>\n<p>赠人玫瑰手有余香。知识库会持续保持<strong>更新</strong>，欢迎收藏品鉴！</p>\n</blockquote>\n<h1><a id=\"_39\"></a>知识库地图</h1>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/80ccad16-4f30-4a71-aff6-e3352c785e57.png\" alt=\"\" /></p>\n<h1><a id=\"Java_43\"></a>Java基础</h1>\n<blockquote>\n<p>[!ATTENTION]</p>\n<ul>\n<li><strong>Java 基础是非常重要的</strong>！所谓基础不牢，地动山摇，很多初学者在初学阶段容易按捺不住，三天打鱼两天晒网，这就会导致后面的学习非常的吃力，所以我的建议是一定要肯花时间花精力把基础部分学扎实了，再开始学习后面的内容。</li>\n<li>Java 基础部分可以分为基础篇和进阶篇，基础篇包括基础语法、面向对象、集合框架、异常处理，以及字符串和数组等等重要知识点；进阶篇包括 Java IO、Java 并发编程、Java 虚拟机等等。</li>\n<li>入门阶段，一定要多 coding，不要眼高手低，很多看起来会的知识可能真正实操起来就会出现各种各样的问题，那么只有通过多记多练才能迎刃而解。</li>\n</ul>\n</blockquote>\n<h2><a id=\"_52\"></a>基础篇</h2>\n<h3><a id=\"Java_55\"></a>Java概述</h3>\n<ul>\n<li><a href=\"docs/overview/what-is-java.md\" target=\"_blank\">什么是 Java？</a></li>\n<li><a href=\"docs/overview/java-history.md\" target=\"_blank\">Java 的发展简史</a></li>\n<li><a href=\"docs/overview/java-advantage.md\" target=\"_blank\">Java 的优势</a></li>\n<li><a href=\"docs/overview/jdk-jre.md\" target=\"_blank\">JDK 和 JRE 有什么区别？</a></li>\n<li><a href=\"docs/overview/idea.md\" target=\"_blank\">手把手教你安装集成开发环境 Intellij IDEA</a></li>\n<li><a href=\"docs/overview/hello-world.md\" target=\"_blank\">第一个 Java 程序：Hello World</a></li>\n</ul>\n<h3><a id=\"Java_65\"></a>Java基础语法</h3>\n<ul>\n<li><a href=\"docs/basic-grammar/basic-data-type.md\" target=\"_blank\">基本数据类型</a></li>\n<li><a href=\"docs/basic-grammar/flow-control.md\" target=\"_blank\">流程控制</a></li>\n<li><a href=\"docs/basic-grammar/operator.md\" target=\"_blank\">运算符</a></li>\n<li><a href=\"docs/basic-grammar/javadoc.md\" target=\"_blank\">注释</a></li>\n</ul>\n<h3><a id=\"_72\"></a>面向对象</h3>\n<ul>\n<li><a href=\"docs/oo/object-class.md\" target=\"_blank\">什么是对象？什么是类</a></li>\n<li><a href=\"docs/oo/var.md\" target=\"_blank\">变量</a></li>\n<li><a href=\"docs/oo/method.md\" target=\"_blank\">方法</a></li>\n<li><a href=\"docs/oo/construct.md\" target=\"_blank\">构造方法</a></li>\n<li><a href=\"docs/oo/code-init.md\" target=\"_blank\">代码初始化块</a></li>\n<li><a href=\"docs/oo/abstract.md\" target=\"_blank\">抽象类</a></li>\n<li><a href=\"docs/oo/interface.md\" target=\"_blank\">接口</a></li>\n<li><a href=\"docs/oo/static.md\" target=\"_blank\">static 关键字</a></li>\n<li><a href=\"docs/oo/this-super.md\" target=\"_blank\">this 和 super 关键字</a></li>\n<li><a href=\"docs/oo/final.md\" target=\"_blank\">final 关键字</a></li>\n<li><a href=\"docs/oo/instanceof.md\" target=\"_blank\">instanceof 关键字</a></li>\n<li><a href=\"docs/basic-extra-meal/immutable.md\" target=\"_blank\">不可变对象</a></li>\n<li><a href=\"docs/basic-extra-meal/varables.md\" target=\"_blank\">可变参数</a></li>\n<li><a href=\"docs/basic-extra-meal/generic.md\" target=\"_blank\">泛型</a></li>\n<li><a href=\"docs/basic-extra-meal/annotation.md\" target=\"_blank\">注解</a></li>\n<li><a href=\"docs/basic-extra-meal/enum.md\" target=\"_blank\">枚举</a></li>\n<li><a href=\"docs/basic-extra-meal/fanshe.md\" target=\"_blank\">反射</a></li>\n</ul>\n<h3><a id=\"String_92\"></a>字符串String</h3>\n<ul>\n<li><a href=\"docs/string/immutable.md\" target=\"_blank\">String 为什么是不可变的？</a></li>\n<li><a href=\"docs/string/constant-pool.md\" target=\"_blank\">字符串常量池</a></li>\n<li><a href=\"docs/string/intern.md\" target=\"_blank\">深入浅出 String.intern</a></li>\n<li><a href=\"docs/string/equals.md\" target=\"_blank\">如何比较两个字符串是否相等？</a></li>\n<li><a href=\"docs/string/join.md\" target=\"_blank\">如何拼接字符串？</a></li>\n<li><a href=\"docs/string/split.md\" target=\"_blank\">如何拆分字符串？</a></li>\n</ul>\n<h3><a id=\"_101\"></a>数组</h3>\n<ul>\n<li><a href=\"docs/array/array.md\" target=\"_blank\">什么是数组？</a></li>\n<li><a href=\"docs/array/print.md\" target=\"_blank\">如何打印数组？</a></li>\n</ul>\n<h3><a id=\"_106\"></a>集合框架（容器）</h3>\n<ul>\n<li><a href=\"docs/collection/gailan.md\" target=\"_blank\">Java 中的集合框架该如何分类？</a></li>\n<li><a href=\"docs/collection/big-o.md\" target=\"_blank\">简单介绍下时间复杂度</a></li>\n<li><a href=\"docs/collection/arraylist.md\" target=\"_blank\">ArrayList</a></li>\n<li><a href=\"docs/collection/linkedlist.md\" target=\"_blank\">LinkedList</a></li>\n<li><a href=\"docs/collection/list-war-1.md\" target=\"_blank\">ArrayList 和 LinkedList 之增删改查的时间复杂度</a></li>\n<li><a href=\"docs/collection/list-war-2.md\" target=\"_blank\">ArrayList 和 LinkedList 的实现方式以及性能对比</a></li>\n<li><a href=\"docs/collection/iterator-iterable.md\" target=\"_blank\">Iterator与Iterable有什么区别？</a></li>\n<li><a href=\"docs/collection/fail-fast.md\" target=\"_blank\">为什么阿里巴巴强制不要在 foreach 里执行删除操作</a></li>\n<li><a href=\"docs/collection/hash.md\" target=\"_blank\">详细讲解 HashMap 的 hash 原理</a></li>\n<li><a href=\"docs/collection/hashmap-resize.md\" target=\"_blank\">详细讲解 HashMap 的扩容机制</a></li>\n<li><a href=\"docs/collection/hashmap-loadfactor.md\" target=\"_blank\">HashMap 的加载因子为什么是 0.75？</a></li>\n<li><a href=\"docs/collection/hashmap-thread-nosafe.md\" target=\"_blank\">为什么 HashMap 是线程不安全的？</a></li>\n</ul>\n<h3><a id=\"_122\"></a>异常处理</h3>\n<ul>\n<li><a href=\"docs/exception/gailan.md\" target=\"_blank\">聊聊异常处理机制</a></li>\n<li><a href=\"docs/exception/try-catch-finally.md\" target=\"_blank\">关于 try-catch-finally</a></li>\n<li><a href=\"docs/exception/throw-throws.md\" target=\"_blank\">关于 throw 和 throws</a></li>\n<li><a href=\"docs/exception/try-with-resouces.md\" target=\"_blank\">关于 try-with-resouces</a></li>\n<li><a href=\"docs/exception/shijian.md\" target=\"_blank\">异常处理机制到底该怎么用？</a></li>\n</ul>\n<h3><a id=\"_130\"></a>常用工具类</h3>\n<ul>\n<li><a href=\"docs/common-tool/arrays.md\" target=\"_blank\">数组工具类：Arrays</a></li>\n<li><a href=\"docs/common-tool/collections.md\" target=\"_blank\">集合工具类：Collections</a></li>\n<li><a href=\"docs/common-tool/hutool.md\" target=\"_blank\">简化每一行代码工具类：Hutool</a></li>\n<li><a href=\"docs/common-tool/guava.md\" target=\"_blank\">Guava，拯救垃圾代码，效率提升N倍</a></li>\n</ul>\n<h3><a id=\"_137\"></a>重要知识点</h3>\n<ul>\n<li><a href=\"docs/basic-extra-meal/48-keywords.md\" target=\"_blank\">Java 中常用的 48 个关键字</a></li>\n<li><a href=\"docs/basic-extra-meal/java-naming.md\" target=\"_blank\">Java 命名的注意事项</a></li>\n<li><a href=\"docs/basic-extra-meal/java-unicode.md\" target=\"_blank\">详解 Java 的默认编码方式 Unicode</a></li>\n<li><a href=\"docs/basic-extra-meal/int-cache.md\" target=\"_blank\">new Integer(18)与Integer.valueOf(18)有什么区别？</a></li>\n<li><a href=\"docs/basic-extra-meal/box.md\" target=\"_blank\">聊聊自动拆箱与自动装箱</a></li>\n<li><a href=\"docs/basic-extra-meal/deep-copy.md\" target=\"_blank\">浅拷贝与深拷贝究竟有什么不一样？</a></li>\n<li><a href=\"docs/basic-extra-meal/equals-hashcode.md\" target=\"_blank\">为什么重写 equals 时必须重写 hashCode 方法？</a></li>\n<li><a href=\"docs/basic-extra-meal/override-overload.md\" target=\"_blank\">方法重载和方法重写有什么区别？</a></li>\n<li><a href=\"docs/basic-extra-meal/pass-by-value.md\" target=\"_blank\">Java 到底是值传递还是引用传递？</a></li>\n<li><a href=\"docs/basic-extra-meal/true-generic.md\" target=\"_blank\">Java 不能实现真正泛型的原因是什么？</a></li>\n<li><a href=\"docs/basic-extra-meal/what-happen-when-javac.md\" target=\"_blank\">Java 程序在编译期发生了什么？</a></li>\n<li><a href=\"docs/basic-extra-meal/comparable-omparator.md\" target=\"_blank\">Comparable和Comparator有什么区别？</a></li>\n<li><a href=\"docs/io/shangtou.md\" target=\"_blank\">Java IO 流详细划分</a></li>\n</ul>\n<h2><a id=\"_154\"></a>进阶篇</h2>\n<blockquote>\n<p>[!ATTENTION]<br />\n如果你想成为一名高质量的 Java 程序员，那么 Java 并发编程和 Java 虚拟机是必须要熟练掌握的！</p>\n</blockquote>\n<h3><a id=\"Java_159\"></a>Java并发编程</h3>\n<ul>\n<li><a href=\"docs/thread/wangzhe-thread.md\" target=\"_blank\">室友打一把王者就学会了多线程</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/dd_IPt7lQQeIMH7YTdgLIw\" target=\"_blank\">为什么阿里要禁用Executors创建线程池？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/bImCIoYsH_JEzTkBx2lj4A\" target=\"_blank\">60张手绘图，一举拿下Java并发！</a></li>\n</ul>\n<h3><a id=\"Java_165\"></a>Java虚拟机</h3>\n<ul>\n<li><a href=\"docs/jvm/what-is-jvm.md\" target=\"_blank\">JVM 是什么？</a></li>\n</ul>\n<h1><a id=\"Java_171\"></a>Java企业级开发</h1>\n<blockquote>\n<p>[!ATTENTION]</p>\n<ul>\n<li><strong>到底能不能成为一名合格的 Java 程序员，从理论走向实战？Java 企业级开发这部分内容就是一个分水岭</strong>！</li>\n<li>Java 企业级开发这部分可以分为工具篇、框架篇、安全篇、分布式、高性能、高可用和实战篇等等。</li>\n<li>纸上得来终觉浅，须知此事要躬行。</li>\n</ul>\n</blockquote>\n<h2><a id=\"_179\"></a>基建篇</h2>\n<h3><a id=\"Maven_181\"></a>Maven</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\nMaven 是一个项目管理工具，可以对 Java 项目进行构建、依赖管理。</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/maven/maven.md\" target=\"_blank\">手把手教你安装、配置、使用 Maven</a></li>\n<li><a href=\"docs/maven/mvnd.md\" target=\"_blank\">守护版 Maven 来了！！！性能提升 300%</a></li>\n</ul>\n<h3><a id=\"Git_190\"></a>Git</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\nGit 是 Linus Torvalds 为了帮助管理 Linux 内核而开发的一个开源的版本控制软件，绝大多数项目源码和文档都会采用 Git 来进行版本控制。</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/git/git-qiyuan.md\" target=\"_blank\">可能是 Git 历史上最伟大的一次代码提交</a></li>\n<li><a href=\"docs/git/shujujiegou.md\" target=\"_blank\">终于有人把 Git 的数据模型讲清楚了</a></li>\n<li><a href=\"docs/git/neibushixian.md\" target=\"_blank\">昨晚看完 Linus 第一次提交的 Git 代码后，我失眠了！</a></li>\n<li><a href=\"docs/git/mingling.md\" target=\"_blank\">要熟练使用 Git，恐怕要记住这60个命令</a></li>\n<li><a href=\"docs/git/jibenshiyong.md\" target=\"_blank\">崩溃！实习生把小组的代码仓库搞得一团糟。。。</a></li>\n<li><a href=\"docs/git/fenzhi.md\" target=\"_blank\">信不信，7 张图就能让你把 Git 分支管理拿捏的死死的。。</a></li>\n<li><a href=\"docs/git/progit.md\" target=\"_blank\">豆瓣9.1分！我昨天在挂急诊时啃完了这本书！</a></li>\n<li><a href=\"docs/git/sparse-checkout.md\" target=\"_blank\">一条 Git 命令减少了一半存储空间，我的服务器在偷着笑</a></li>\n</ul>\n<h3><a id=\"Nginx_204\"></a>Nginx</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\nNginx是一款轻量级的 Web 服务器/反向代理服务器，占有内存少，并发能力强。</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/nginx/nginx.md\" target=\"_blank\">Nginx 入门教程，敲简单，10 分钟搞定</a></li>\n</ul>\n<h3><a id=\"Logback_211\"></a>Logback</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\n线上问题的追踪离不开日志框架，Logback 是 Spring Boot 默认的日志框架。</p>\n</blockquote>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/dO1dYAHwyB-81L1z3D_sdg\" target=\"_blank\">Logback这样配置，性能提升10倍！</a></li>\n</ul>\n<h2><a id=\"_219\"></a>工具篇</h2>\n<h3><a id=\"Intellij_IDEA_221\"></a>Intellij IDEA</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\n业界公认的最好的 Java 基础开发环境。</p>\n</blockquote>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/KG0yzb_9XhhTSzjHr4DkIQ\" target=\"_blank\">阅读源码必备的4个 IDEA 高级调试技巧</a></li>\n</ul>\n<h3><a id=\"_229\"></a>辅助工具</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\n一些可以提高工作效率的工具，甚至可以替代付费工具。</p>\n</blockquote>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/ZgkNQsve_vq6Xq0_gnWHCw\" target=\"_blank\">再见Postman！推荐一款更适合国人的接口管理工具ApiPost！</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/gy6dVHvNy495bqov6JOAdA\" target=\"_blank\">再见了VMware，推荐一款更轻量级的虚拟机Multipass！</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/tEwVadscpaUI5uR6aiTZkQ\" target=\"_blank\">再见了Swagger，推荐七款可以替代的在线文档生成神器</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/EaGCe4GRG2C-0zuVxWxl5A\" target=\"_blank\">干掉visio，这款在线的画图神器 drwa.io 真的绝了！！！</a></li>\n<li><a href=\"docs/gongju/tabby.md\" target=\"_blank\">干掉 Xshell？Tabby这款开源的终端工具逼格更高！</a></li>\n<li><a href=\"docs/gongju/chiner.md\" target=\"_blank\">干掉PowerDesigner，这款开源数据库设计神器chiner真的绝了</a></li>\n<li><a href=\"docs/gongju/DBeaver.md\" target=\"_blank\">再见收费的Navicat！操作所有数据库就靠它了！</a></li>\n</ul>\n<h2><a id=\"_242\"></a>框架篇</h2>\n<h3><a id=\"SpringBoot_244\"></a>SpringBoot</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\nSpringBoot 不仅继承了Spring框架原有的优秀特性，而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突，以及引用的不稳定性等问题得到了很好的解决。</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/springboot/initializr.md\" target=\"_blank\">一分钟快速搭建 Spring Boot 项目</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/HWTVu7E62VkaH2anQc1J_g\" target=\"_blank\">基于SpringBoot 的CMS系统，拿去开发企业官网真香</a></li>\n<li><a href=\"docs/springboot/tomcat.md\" target=\"_blank\">Spring Boot为什么不需要额外安装Tomcat？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/FmRyF6RcCodb8vUBem8dAA\" target=\"_blank\">Spring Boot 3.0 M1 发布，正式弃用 Java 8</a></li>\n</ul>\n<h2><a id=\"_256\"></a>安全篇</h2>\n<h2><a id=\"_258\"></a>分布式</h2>\n<h2><a id=\"_260\"></a>高性能</h2>\n<h3><a id=\"_262\"></a>消息队列</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\n消息队列是一种异步的服务间通信方式，适用于无服务器和微服务架构，用于分离重量级处理、缓冲或批处理工作以及缓解高峰期工作负载。</p>\n</blockquote>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/UKWOyS90O6R_y1YEdF_JjQ\" target=\"_blank\">敢在简历上写精通消息队列，果然有一手！</a></li>\n</ul>\n<h2><a id=\"_270\"></a>高可用</h2>\n<h2><a id=\"_272\"></a>实战篇</h2>\n<h3><a id=\"_274\"></a>开源项目</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\nGitHub 上、码云上一些高 star 的优质项目推荐，优质的轮子极大地提高了开发效率。</p>\n</blockquote>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/H2Bwc-7ghcjyaEnKUTQ5Dg\" target=\"_blank\">EasyPoi实现Excel导入导出，好用到爆，POI可以扔掉了！</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/Knb7b-uYLWsKZfgvGgN_ug\" target=\"_blank\">SpringBoot 实现 Excel 导入导出，性能爆表，用起来够优雅！</a></li>\n<li><a href=\"docs/gongju/knife4j.md\" target=\"_blank\">再见丑陋的SwaggerUI，这款开源的API文档生成神器 knife4j 界面更炫酷，逼格更高！</a></li>\n<li><a href=\"docs/kaiyuan/auto-generator.md\" target=\"_blank\">取代 Mybatis Generator，这款代码生成神器配置更简单，开发效率更高！</a></li>\n</ul>\n<h3><a id=\"_284\"></a>问题解析</h3>\n<blockquote>\n<p>[!ATTENTION]<br />\n开发过程中遇到的一些典型问题，该如何解决？</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/shigu/log4j2.md\" target=\"_blank\">Log4j2突发重大漏洞</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/zXzJVxRxMUnoyJs6_NojMQ\" target=\"_blank\">重现了一波 Log4j2 核弹级漏洞，同事的电脑沦为炮灰</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/J6jb_Dt3C49CIjYBTrN4gQ\" target=\"_blank\">生成订单30分钟未支付，则自动取消，该怎么实现？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/TaFohrRetiCKEf7ZKESBaQ\" target=\"_blank\">西安一码通又崩了！难道又不小心回滚到上个版本？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/dKsneRKW7G9dvtr9NzefEA\" target=\"_blank\">半月崩两次，从技术角度再来聊聊一码通</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/lJdYpH94qGm5Q0pkgfjHTQ\" target=\"_blank\">使用MQ的时候，怎么确保消息100%不丢失？</a></li>\n</ul>\n<h1><a id=\"_297\"></a>数据库</h1>\n<h2><a id=\"Redis_299\"></a>Redis</h2>\n<blockquote>\n<p>[!ATTENTION]<br />\nRedis（Remote Dictionary Server )，即远程字典服务，是一个用 C语言编写的，支持网络、可基于内存和可持久化日志的键值对数据库。</p>\n</blockquote>\n<h1><a id=\"_307\"></a>计算机基础</h1>\n<h1><a id=\"_310\"></a>求职面试</h1>\n<blockquote>\n<p>[!ATTENTION]</p>\n<ul>\n<li><strong>学习了那么多 Java 知识，耗费了无数的脑细胞，熬掉了无数根秀发，为的是什么？当然是谋取一份心仪的 offer 了</strong>。那八股文、面试题、城市选择、优质面经又怎能少得了呢？</li>\n<li>千淘万漉虽辛苦，吹尽狂沙始到金。</li>\n</ul>\n</blockquote>\n<h2><a id=\"_316\"></a>八股文</h2>\n<ul>\n<li><a href=\"docs/baguwen/java-basic-34.md\" target=\"_blank\">Java 高频面试题 34 道</a></li>\n<li><a href=\"docs/baguwen/java-basic.md\" target=\"_blank\">Java 基础八股文（背诵版）</a></li>\n<li><a href=\"docs/collection/hashmap-interview.md\" target=\"_blank\">HashMap 精选面试题</a></li>\n<li><a href=\"docs/baguwen/java-thread.md\" target=\"_blank\">Java 并发编程八股文（背诵版）</a></li>\n<li><a href=\"docs/baguwen/jvm.md\" target=\"_blank\">Java 虚拟机八股文（背诵版）</a></li>\n</ul>\n<h2><a id=\"_324\"></a>面试经验</h2>\n<ul>\n<li><a href=\"docs/mianjing/shanganaliyun.md\" target=\"_blank\">上岸杭州阿里云</a></li>\n<li><a href=\"docs/mianjing/redis12question.md\" target=\"_blank\">面试官：看你简历上写了Redis，请回答一下这 12 个问题</a></li>\n</ul>\n<h2><a id=\"_329\"></a>城市选择</h2>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/xlPZfpd89rDq6L-Me80wnw\" target=\"_blank\">北京都有哪些牛逼的互联网公司？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/uZQ8p0ytsQFXzt5ppzx6fA\" target=\"_blank\">广州都有哪些牛逼的互联网公司？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/hBU-eEUq8aN5PWwdZFmC4g\" target=\"_blank\">深圳有哪些牛批的互联网公司？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/s0Ub1CHC9eEi0YrqPrnRog\" target=\"_blank\">西安有哪些不错的互联网公司？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/8QQvOrkG3Vdjj3GxP1zxBQ\" target=\"_blank\">青岛有牛逼的互联网公司吗？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/SU9drg2xJKcheIwJ6OSSBQ\" target=\"_blank\">郑州有哪些不错的互联网公司？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/cnYsZLudFOwv5EKYMsMh0Q\" target=\"_blank\">苏州有哪些牛逼的互联网公司？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/CfZ1CEmtPOP4TAwAs8Ocrw\" target=\"_blank\">南京有哪些靠谱的互联网公司？</a></li>\n<li><a href=\"docs/cityselect/hangzhou.md\" target=\"_blank\">杭州有哪些顶级的互联网公司？</a></li>\n</ul>\n<h1><a id=\"_342\"></a>学习资源</h1>\n<blockquote>\n<p>[!ATTENTION]<br />\n<strong>这里会推荐一些优质的简历模板、技术手册、硬核 PDF、在线教程和在线教学视频，帮助大家在学习的道路上少走一些弯路</strong>。</p>\n</blockquote>\n<h2><a id=\"_347\"></a>资料下载</h2>\n<h2><a id=\"_349\"></a>资源推荐</h2>\n<blockquote>\n<p>[!ATTENTION]<br />\n<strong>有 GitHub、码云、B 站、Coursera、个人博客、知识库网站上公开的免费课程，也有极客时间上付费专栏，慕课上的教学视频等</strong>。</p>\n</blockquote>\n<h3><a id=\"_354\"></a>在线教程</h3>\n<h3><a id=\"_356\"></a>在线教学视频</h3>\n<ul>\n<li><a href=\"docs/kaiyuan/yuneban-wangyiyunyinyue.md\" target=\"_blank\">推荐 2 个 Java 练手项目（云E办、仿网易云音乐）</a></li>\n</ul>\n<h1><a id=\"_360\"></a>程序人生</h1>\n<blockquote>\n<p>[!ATTENTION]<br />\n<strong>程序员的人生不仅有代码，还有诗和远方</strong>。br&gt;<br><br />\n人间烟火味，最抚凡人心。</p>\n</blockquote>\n<h2><a id=\"_366\"></a>码农生活</h2>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/KByt42RiDtt2aWpN4klmKg\" target=\"_blank\">中美程序员不完全对比</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/qHGdIuA32X-zydbMTKDPuA\" target=\"_blank\">降薪 45%，从互联网回到国企</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/08Ax1ArAjchemjUXih7zNw\" target=\"_blank\">学弟在微软的这六个月</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/mK0yaen1mhCoWZ6ZLC5vQg\" target=\"_blank\">找个程序员做老公/男票有多爽？？？</a></li>\n<li><a href=\"docs/manongshenghuo/yanjiusuo-20wan.md\" target=\"_blank\">研究所月入两万，是什么体验？</a></li>\n</ul>\n<h2><a id=\"_374\"></a>闲聊唠嗑</h2>\n<ul>\n<li><a href=\"docs/xianliaolaoke/daxue-nuli-jisuanji.md\" target=\"_blank\">大学计算机系最努力的同学都是如何学习的？</a></li>\n</ul>\n<h1><a id=\"_378\"></a>联系作者</h1>\n<h2><a id=\"_380\"></a>关于作者</h2>\n<ul>\n<li>一名普通的 Java 后端开发者，热爱学习</li>\n<li>目前在洛阳栖息，虽然处在一片互联网沙漠，却心存妄想，想要在这片土地上开垦出一片属于自己的田地</li>\n<li>参加工作以后越来越理解交流和分享的重要性，在不停地汲取营养的同时，也希望自己的分享去帮助到小伙伴们</li>\n<li>Java 程序员进阶之路，不仅是我自学 Java 以来所有的原创文章和学习资料的大聚合，更是我向这个世界传播知识的一个窗口。</li>\n</ul>\n<h2><a id=\"_387\"></a>心路历程</h2>\n<ul>\n<li><a href=\"docs/szjy/tobebetterjavaer-wangzhan-shangxian.md\" target=\"_blank\">Java 程序员进阶之路网站上线了，颜值贼高！</a></li>\n<li><a href=\"docs/szjy/tobebetterjavaer-yuming-jiexi.md\" target=\"_blank\">273 块钱购入的域名，值了！</a></li>\n<li><a href=\"docs/szjy/tobebetterjavaer-https.md\" target=\"_blank\">3 年9.9元，HTTP升级到HTTPS，值了！</a></li>\n<li><a href=\"docs/szjy/tobebetterjavaer-beian.md\" target=\"_blank\">30天，终于搞定域名备案！</a></li>\n</ul>\n<h2><a id=\"_394\"></a>联系方式</h2>\n<ul>\n<li>\n<p><strong>技术交流群</strong></p>\n<p>本群的宗旨是给大家提供一个良好的技术学习交流平台，所以杜绝一切广告！<br>由于微信群人满 100 之后无法加入，请先添加作者微信「qing_geee」（也可以扫描下方的二维码），备注：加群。</p>\n  <div>\n      <img src=\"https://cdn.jsdelivr.net/gh/itwanger/toBeBetterJavaer/images/qing_geee.png\" width=\"260px\">\n  </div>\n</li>\n<li>\n<p><strong>原创公众号</strong></p>\n<p>本号的slogan：技术文通俗易懂，吹水文风趣幽默。<br>目前已有 10 万+读者关注，微信搜索「<strong>沉默王二</strong>」（也可以扫描下方的二维码）就可以关注作者了。</p>\n  <div>\n      <img src=\"https://cdn.jsdelivr.net/gh/itwanger/toBeBetterJavaer/images/gongzhonghao.png\" width=\"260px\">\n  </div>\n<p>关注后，回复关键字「<strong>00</strong>」可以获取更多优质的 Java 学习资料。</p>\n</li>\n<li>\n<p><strong>star 趋势图</strong></p>\n</li>\n</ul>\n<p><a href=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ff911775-5e31-4e09-867f-660fa8f1b163\" target=\"_blank\"><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ff911775-5e31-4e09-867f-660fa8f1b163.svg\" alt=\"Stargazers over time\" /></a></p>\n<ul>\n<li><strong>捐赠鼓励</strong></li>\n</ul>\n<p>开源不易，如果《Java 程序员进阶之路》对你有些帮助，可以请作者喝杯咖啡，算是对开源做出的一点点鼓励吧！</p>\n<div>\n    <img src=\"https://cdn.jsdelivr.net/gh/itwanger/toBeBetterJavaer/images/weixin-zhifu.png\" width=\"260px\">\n</div>\n<p>? 感谢大家对我资金的赞赏，每隔一个月会统计一次。</p>\n<table>\n<thead>\n<tr>\n<th>时间</th>\n<th>小伙伴</th>\n<th>赞赏金额</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2022-01-28</td>\n<td>G*R</td>\n<td>6.6元</td>\n</tr>\n<tr>\n<td>2022-01-20</td>\n<td>*光</td>\n<td>50元</td>\n</tr>\n<tr>\n<td>2022-01-14</td>\n<td>*浩</td>\n<td>1元</td>\n</tr>\n<tr>\n<td>2022-01-01</td>\n<td>马伟谊</td>\n<td>6.6元</td>\n</tr>\n<tr>\n<td>2022-01-01</td>\n<td>刚刚好</td>\n<td>3.6元</td>\n</tr>\n<tr>\n<td>2021-12-20</td>\n<td>t*1</td>\n<td>5 元</td>\n</tr>\n<tr>\n<td>2021-10-26</td>\n<td>*鱼</td>\n<td>28 元</td>\n</tr>\n<tr>\n<td>2021-10-11</td>\n<td>*人</td>\n<td>28 元</td>\n</tr>\n<tr>\n<td>2021-09-01</td>\n<td>S*n</td>\n<td>6.6 元</td>\n</tr>\n<tr>\n<td>2021-08-02</td>\n<td>*秒</td>\n<td>1 元</td>\n</tr>\n<tr>\n<td>2021-06-13</td>\n<td>*7</td>\n<td>28 元</td>\n</tr>\n<tr>\n<td>2021-04-29</td>\n<td>pebble</td>\n<td>2 元</td>\n</tr>\n</tbody>\n</table>\n<ul>\n<li><strong>参与贡献</strong></li>\n</ul>\n<ol>\n<li>如果你对本项目有任何建议或发现文中内容有误的，欢迎提交 issues 进行指正。</li>\n<li>对于文中我没有涉及到知识点，欢迎提交 PR。</li>\n</ol>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/cbd6d793-01e6-41fa-a578-0ce921643ddb.jpg\" alt=\"1647740436.jpg\" /></p>\n', '1'), ('18', '1', '2022-02-19 11:44:21', '1212', '12', '', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}}', null, '0'), ('20', '4', '2022-02-19 18:09:06', 'werew', 'ces', '', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', null, null, '0'), ('21', '4', '2022-02-19 18:10:50', 'werew', 'ces', '', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', null, null, '0'), ('22', '5', '2022-02-21 02:44:59', '测试11', '测试11', '测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111测试111', 'PUBLISHED', null, '2022-03-21 12:27:28', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}}', '<p>测试11</p>\n', '1'), ('23', '5', '2022-02-21 03:28:28', '啊啊啊大撒旦法撒旦法', '啊啊啊大撒旦法撒旦法', '啊啊啊大撒旦法撒旦法', 'PUBLISHED', null, '2022-04-13 22:51:55', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}, \"articleCoverUrl\": \"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-13/bf7615ee-8706-47a2-b293-301c8804768d.png\"}', '<p>啊啊啊大撒旦法撒旦法</p>\n', '1'), ('26', '1', '2022-02-24 11:52:07', '的地方高大上\n\n# 是你\n\n也许\n真的不一样', '啊', '', 'DRAFT', null, '2022-03-21 23:14:29', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}}', null, '0'), ('29', '4', '2022-02-26 16:36:03', 'werewf', 'ces234', '', 'PUBLISHED', null, '2022-03-21 23:14:26', '0', null, '0', null, '234', '1'), ('30', '4', '2022-02-26 16:36:04', 'werewf', 'ces234', '', 'PUBLISHED', null, '2022-03-21 23:14:25', '0', null, '0', null, '234', '1'), ('31', '5', '2022-02-27 15:47:30', '# 测试文章录入测试文章录入\n测试文章录入测试文章录入测试文章录入测试文章录入\n测试文章录入测试文章录入测试文章录入', '测试文章录入测试文章录入测试文章录入测试文章录入', '', 'DRAFT', null, '2022-03-21 23:14:29', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}}', null, '0'), ('33', '5', '2022-02-27 16:38:35', '测试新建文章3', '测试新建文章3', '测试新建文章3', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}}', null, '0'), ('34', '5', '2022-02-27 17:08:47', '![图片.png](1)\nfasdfasdf', 'asdfasdf', '', 'DRAFT', null, '2022-03-21 23:14:29', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}}', null, '0'), ('35', '5', '2022-02-27 20:45:48', '### 1.什么是 JVM?\n\nJVM——Java 虚拟机，它是 Java 实现平台无关性的基石。\n\nJava 程序运行的时候，编译器将 Java 文件编译成平台无关的 Java 字节码文件（.class）,接下来对应平台 JVM 对字节码文件进行解释，翻译成对应平台匹配的机器指令并运行。\n\n![Java语言编译运行](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-08/e0b6b3cd-b8d7-45e5-aeb1-4fe784a82ab7.png)\n\n同时 JVM 也是一个跨语言的平台，和语言无关，只和 class 的文件格式关联，任何语言，只要能翻译成符合规范的字节码文件，都能被 JVM 运行。\n\n![JVM跨语言](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-08/fb51b53f-8818-46e0-a5ae-bd6e8c810f5b.png)	', '这是两张外链的图片，可以看到右侧预览的时候就不显示', 'md编辑器上传图片测试成功', 'PUBLISHED', null, '2022-03-21 12:27:21', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}, \"articleCoverUrl\": \"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/20220307/5efa21ea-1201-42e2-9679-db1e33ab792f.jpg\"}', '<h3><a id=\"1_JVM_0\"></a>1.什么是 JVM?</h3>\n<p>JVM——Java 虚拟机，它是 Java 实现平台无关性的基石。</p>\n<p>Java 程序运行的时候，编译器将 Java 文件编译成平台无关的 Java 字节码文件（.class）,接下来对应平台 JVM 对字节码文件进行解释，翻译成对应平台匹配的机器指令并运行。</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-08/e0b6b3cd-b8d7-45e5-aeb1-4fe784a82ab7.png\" alt=\"Java语言编译运行\" /></p>\n<p>同时 JVM 也是一个跨语言的平台，和语言无关，只和 class 的文件格式关联，任何语言，只要能翻译成符合规范的字节码文件，都能被 JVM 运行。</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-08/fb51b53f-8818-46e0-a5ae-bd6e8c810f5b.png\" alt=\"JVM跨语言\" /></p>\n', '0'), ('36', '1', '2022-03-03 10:10:14', '1', '1', '1111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', '{\"isBold\": false, \"textColor\": \"green\", \"rightButton\": {\"show\": false, \"linkTo\": \"\", \"bgColor\": \"\", \"linkType\": \"0\", \"textContent\": \"查看更多\"}}', '<p>1</p>\n', '0'), ('38', '1', '2022-03-08 09:06:15', '111212', '1212', '', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', '{\"articleCoverUrl\": \"\"}', '<p>111212</p>\n', '1'), ('39', '1', '2022-03-08 09:06:42', '1212', '121', '', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', '{\"articleCoverUrl\": \"\"}', '<p>1212</p>\n', '0'), ('42', '4', '2022-03-10 12:06:40', 'dsfds', '你好1', 'dd', 'PUBLISHED', null, '2022-03-21 23:14:29', '0', null, '0', '{\"ren\": \"watch\"}', '<p>dsfds</p>\n', '1'), ('43', '1', '2022-03-21 15:13:10', '---\ntitle: 个人介绍 Q&A\ncategory: 联系作者\n---\n\n大家好，我是二哥呀！这篇文章会通过 QA 的形式简单介绍一下我自己。\n\n## 一、我取得了哪些成绩？\n\n又到了晒成绩的环节，真让人迫不及待啊（瞧我这该死的自信）！\n\n### 01、公众号\n\n目前我的原创公众号“**沉默王二**”有 10.5 万+ 读者关注，专注于分享硬核的 Java 后端技术文章。平均阅读 5500 左右，综合排名能排在全国开发者中的前 50 名左右（数据来源于二十次幂）。\n\n可以微信搜索 **沉默王二** 关键字或者扫码直接关注，关注后回复 **00** 还可以拉取我为你精心准备的学习资料。\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/a687774f-794b-4f9b-be2f-e14a562ee8d0.png)\n\n学习资料有 BAT 大佬的刷题笔记，有《Java 程序员进阶之路》的 PDF 版电子书等等。\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ae7ca045-1ac1-4859-be53-84d72b70193b.png)\n\n\n\n### 02、CSDN\n\n两届博客之星，总榜前 10 选手，访问量 1100 万+，粉丝 34 万+，妥妥的裆部博主，哦，不，头部博主。\n\n>访问地址：https://blog.csdn.net/qing_gee\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/b569a7d4-0970-4e5a-b04b-6fb6274d0925.png)\n\n### 03、知乎\n\nLV9 选手，阅读总数超 1590 万，今年卷一卷的话，破 2000 万阅读没什么问题。\n\n>访问地址：https://www.zhihu.com/people/cmower\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/46ec4e04-c3c4-49d2-b2a3-bb5102717171.png)\n\n### 04、B 站\n\nB 站还比较菜，目前只有一个 10 万+播放量的视频，等我的开源项目编程喵喵?开发完第一个版本后，开始重新卷视频。\n\n>访问地址：https://space.bilibili.com/513340480\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/56acc870-5997-41e2-b4e8-7f03bf069327.png)\n\n### 05、GitHub\n\n目前主要维护的《Java 程序员进阶之路》开源版在 GitHub 上有 1.8k+ 的 star，和出版社约定的是，超过 1 万 star 就出书，小伙伴们可以来点赞支持下。\n\n>访问地址：https://github.com/itwanger/toBeBetterJavaer\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/b733da59-678b-4959-a389-3632f076912e.png)\n\n\n### 05、知识星球\n\n目前还处在试运营阶段，正在筹备星球用户专属的 5 份小册，质量高的一笔。\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/7b0472b7-65c0-4aa0-be54-9f11fd3c7d27.png)\n\n内容涵盖实战项目开发笔记、面试指南、Java学习、LeetCode Java 版刷题笔记等优质内容，价值远超门票！\n\n- 编程喵喵开源 Spring Boot+Vue 的前后端分离项目实战笔记\n- **Java 面试指南**，今年重点更新内容，涵盖面试准备篇、技术面试题篇、面经篇、职场修炼篇等等硬核内容。\n- Java 程序员进阶之路优化重构版（星球专属）\n- GitHub 上星标 147k+ 的 Java 教程（更多优质教程持续更新）\n- LeetCode 题解 Java 版（持续更新 300 道）\n\n这是《Java 面试指南》专栏目前已经更新的内容，讲真，就这一个专栏就值回票价（新人优惠价只有 69 元）。\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ff40b0e3-5a96-467f-b7f9-d6e62a832e77.png)\n\n还有星球内部我也在坚持每天更新优质的内容。\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/474070e9-e986-481a-b963-c4a37020d450.png)\n\n喜欢的小伙伴可以直接扫码加入。\n\n![](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/2b4c5ba7-d928-4465-b562-78ca93db3a40.png)\n\n## 二、为什么叫沉默王二\n\n其实原因很简单，我个人比较喜欢王小波，小波是个程序员，还是个作家，写的小说和杂文我都特别喜欢，有一本叫《沉默的大多数》，我就取了沉默二字，《黄金时代》里和陈清扬搞破鞋的男主就叫王二，加上小波在家排行老二，上面有个哥哥，下面有个弟弟，所以综合到一起就叫“沉默王二”了。\n\n## 三、为什么做这个开源知识库\n\n> [!NOTE]\n> 知识库取名 **toBeBetterJavaer**，即 **To Be Better Javaer**，意为「成为一名更好的 Java 程序员」，是自学 Java 以来所有原创文章和学习资料的大聚合。内容包括 Java 基础、Java 并发编程、Java 虚拟机、Java 企业级开发、Java 面试等核心知识点。据说每一个优秀的 Java 程序员都喜欢她，风趣幽默、通俗易懂。学 Java，就认准 Java 程序员进阶之路?。\n>  \n>  知识库旨在为学习 Java 的小伙伴提供一系列：\n>  - **优质的原创 Java 教程**\n>  - **全面清晰的 Java 学习路线**\n>  - **免费但靠谱的 Java 学习资料**\n>  - **精选的 Java 岗求职面试指南**\n>  - **Java 企业级开发所需的必备技术**\n>\n> 赠人玫瑰手有余香。知识库会持续保持**更新**，欢迎收藏品鉴！\n\n>访问地址：[https://tobebetterjavaer.com](https://tobebetterjavaer.com)\n\n## 四、未完待续\n', '11', '', 'PUBLISHED', null, '2022-03-21 15:15:57', '0', null, '0', '{\"articleCoverUrl\": \"\"}', '<hr />\n<h2><a id=\"title__QA\ncategory__1\"></a>title: 个人介绍 Q&amp;A<br />\ncategory: 联系作者</h2>\n<p>大家好，我是二哥呀！这篇文章会通过 QA 的形式简单介绍一下我自己。</p>\n<h2><a id=\"_7\"></a>一、我取得了哪些成绩？</h2>\n<p>又到了晒成绩的环节，真让人迫不及待啊（瞧我这该死的自信）！</p>\n<h3><a id=\"01_11\"></a>01、公众号</h3>\n<p>目前我的原创公众号“<strong>沉默王二</strong>”有 10.5 万+ 读者关注，专注于分享硬核的 Java 后端技术文章。平均阅读 5500 左右，综合排名能排在全国开发者中的前 50 名左右（数据来源于二十次幂）。</p>\n<p>可以微信搜索 <strong>沉默王二</strong> 关键字或者扫码直接关注，关注后回复 <strong>00</strong> 还可以拉取我为你精心准备的学习资料。</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/a687774f-794b-4f9b-be2f-e14a562ee8d0.png\" alt=\"\" /></p>\n<p>学习资料有 BAT 大佬的刷题笔记，有《Java 程序员进阶之路》的 PDF 版电子书等等。</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ae7ca045-1ac1-4859-be53-84d72b70193b.png\" alt=\"\" /></p>\n<h3><a id=\"02CSDN_25\"></a>02、CSDN</h3>\n<p>两届博客之星，总榜前 10 选手，访问量 1100 万+，粉丝 34 万+，妥妥的裆部博主，哦，不，头部博主。</p>\n<blockquote>\n<p>访问地址：https://blog.csdn.net/qing_gee</p>\n</blockquote>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/b569a7d4-0970-4e5a-b04b-6fb6274d0925.png\" alt=\"\" /></p>\n<h3><a id=\"03_33\"></a>03、知乎</h3>\n<p>LV9 选手，阅读总数超 1590 万，今年卷一卷的话，破 2000 万阅读没什么问题。</p>\n<blockquote>\n<p>访问地址：https://www.zhihu.com/people/cmower</p>\n</blockquote>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/46ec4e04-c3c4-49d2-b2a3-bb5102717171.png\" alt=\"\" /></p>\n<h3><a id=\"04B__41\"></a>04、B 站</h3>\n<p>B 站还比较菜，目前只有一个 10 万+播放量的视频，等我的开源项目编程喵喵?开发完第一个版本后，开始重新卷视频。</p>\n<blockquote>\n<p>访问地址：https://space.bilibili.com/513340480</p>\n</blockquote>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/56acc870-5997-41e2-b4e8-7f03bf069327.png\" alt=\"\" /></p>\n<h3><a id=\"05GitHub_49\"></a>05、GitHub</h3>\n<p>目前主要维护的《Java 程序员进阶之路》开源版在 GitHub 上有 1.8k+ 的 star，和出版社约定的是，超过 1 万 star 就出书，小伙伴们可以来点赞支持下。</p>\n<blockquote>\n<p>访问地址：https://github.com/itwanger/toBeBetterJavaer</p>\n</blockquote>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/b733da59-678b-4959-a389-3632f076912e.png\" alt=\"\" /></p>\n<h3><a id=\"05_58\"></a>05、知识星球</h3>\n<p>目前还处在试运营阶段，正在筹备星球用户专属的 5 份小册，质量高的一笔。</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/7b0472b7-65c0-4aa0-be54-9f11fd3c7d27.png\" alt=\"\" /></p>\n<p>内容涵盖实战项目开发笔记、面试指南、Java学习、LeetCode Java 版刷题笔记等优质内容，价值远超门票！</p>\n<ul>\n<li>编程喵喵开源 Spring Boot+Vue 的前后端分离项目实战笔记</li>\n<li><strong>Java 面试指南</strong>，今年重点更新内容，涵盖面试准备篇、技术面试题篇、面经篇、职场修炼篇等等硬核内容。</li>\n<li>Java 程序员进阶之路优化重构版（星球专属）</li>\n<li>GitHub 上星标 147k+ 的 Java 教程（更多优质教程持续更新）</li>\n<li>LeetCode 题解 Java 版（持续更新 300 道）</li>\n</ul>\n<p>这是《Java 面试指南》专栏目前已经更新的内容，讲真，就这一个专栏就值回票价（新人优惠价只有 69 元）。</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/ff40b0e3-5a96-467f-b7f9-d6e62a832e77.png\" alt=\"\" /></p>\n<p>还有星球内部我也在坚持每天更新优质的内容。</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/474070e9-e986-481a-b963-c4a37020d450.png\" alt=\"\" /></p>\n<p>喜欢的小伙伴可以直接扫码加入。</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/2b4c5ba7-d928-4465-b562-78ca93db3a40.png\" alt=\"\" /></p>\n<h2><a id=\"_84\"></a>二、为什么叫沉默王二</h2>\n<p>其实原因很简单，我个人比较喜欢王小波，小波是个程序员，还是个作家，写的小说和杂文我都特别喜欢，有一本叫《沉默的大多数》，我就取了沉默二字，《黄金时代》里和陈清扬搞破鞋的男主就叫王二，加上小波在家排行老二，上面有个哥哥，下面有个弟弟，所以综合到一起就叫“沉默王二”了。</p>\n<h2><a id=\"_88\"></a>三、为什么做这个开源知识库</h2>\n<blockquote>\n<p>[!NOTE]<br />\n知识库取名 <strong>toBeBetterJavaer</strong>，即 <strong>To Be Better Javaer</strong>，意为「成为一名更好的 Java 程序员」，是自学 Java 以来所有原创文章和学习资料的大聚合。内容包括 Java 基础、Java 并发编程、Java 虚拟机、Java 企业级开发、Java 面试等核心知识点。据说每一个优秀的 Java 程序员都喜欢她，风趣幽默、通俗易懂。学 Java，就认准 Java 程序员进阶之路?。</p>\n<p>知识库旨在为学习 Java 的小伙伴提供一系列：</p>\n<ul>\n<li><strong>优质的原创 Java 教程</strong></li>\n<li><strong>全面清晰的 Java 学习路线</strong></li>\n<li><strong>免费但靠谱的 Java 学习资料</strong></li>\n<li><strong>精选的 Java 岗求职面试指南</strong></li>\n<li><strong>Java 企业级开发所需的必备技术</strong></li>\n</ul>\n<p>赠人玫瑰手有余香。知识库会持续保持<strong>更新</strong>，欢迎收藏品鉴！</p>\n</blockquote>\n<blockquote>\n<p>访问地址：<a href=\"https://tobebetterjavaer.com\" target=\"_blank\">https://tobebetterjavaer.com</a></p>\n</blockquote>\n<h2><a id=\"_104\"></a>四、未完待续</h2>\n', '1'), ('44', '4', '2022-03-21 17:21:11', '测试', '张磊测试', '测试', 'PUBLISHED', null, '2022-03-21 17:22:57', '0', null, '0', '{\"articleCoverUrl\": \"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-21/5eedaa5b-e1e2-4b33-96f0-d4d924d8f3f9.jpg\"}', '<p>测试</p>\n', '1'), ('45', '5', '2022-03-22 01:59:30', '\n![图片.png](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-22/fc6ab948-7298-41bd-b579-035a83e820e0.png)\n问题不大\n测试从头部直接插入一张图片这回应该\n![图片.png](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-22/9f970238-34b3-4da7-8939-3e495848f58f.png)\n没问题了那么肯定这样也没问题呗\n![图片.png](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-22/f61b63dd-7ec8-4c1e-9db1-05c788ffbc85.png)\n\n应该是测试都通过了\n\n![图片.png](https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-22/47131bcf-463c-4765-b66b-03eecdb61a75.png)\n\n如果前后都有换行符了的测试\n也没有多换行，应该这样就对了。\n(上海战疫录)一线|“迷彩服”“蓝骑士”……“疫线”志愿者“随时待命”\n\n　　中新网上海4月8日电 (高志苗)“迷彩服务队来了，他们做事高效又靠谱，他们来了我们就安心了。”在普陀区桃浦镇金祁二期居民区，居民对迷彩服务队有很强的认同感。\n\n　　小区老人张阿姨告诉记者，这份认同感得益于迷彩服务队平日里在小区积攒的威望和人气。“平时他们就一直来陪伴我，给我温暖，现在疫情防控期间，有他们在，生活物资之类的也很放心。”\n\n　　记者了解到，这支迷彩服务队都由退役军人组成，早在2017年就已成立，而在此次疫情中，队长王宇拉起了“防疫迷彩突击队”，24小时“随时待命”。队伍目前有11人，他们走到各个居民区，参与核酸检测志愿服务工作，为小区老年居民送菜送药。\n\n　　王宇告诉中新网记者，“希望凭着我们的力量去帮助更多需要帮助的人，不管是心理上还是物质上给与对方关心，给小朋友树立榜样，也给老年人送去温暖。”\n\n　　“迷彩绿”服务的同时也感染了社区居民，他们自发组建起了志愿者服务队。之前就有专业消杀从业经历的小区居民们，发挥自身特长，组建了一支防疫消杀志愿队。“每天看到这些‘迷彩服’志愿者们来回奔波，我自己也是一名军人、一名党员，这一刻我也应该做点什么。”居民蔡昌介绍说，目前，这支消杀志愿队已从最初的两三人，发展到十人规模，成了一支防疫的基层自治力量。', '测试粘贴图片前后加入换行符', '', 'PUBLISHED', null, '2022-04-09 22:04:30', '0', null, '0', '{\"articleCoverUrl\": \"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-09/4f392b3a-4682-4868-aaad-22cda70bd704.png\"}', '<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-22/fc6ab948-7298-41bd-b579-035a83e820e0.png\" alt=\"图片.png\" /><br />\n问题不大<br />\n测试从头部直接插入一张图片这回应该<br />\n<img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-22/9f970238-34b3-4da7-8939-3e495848f58f.png\" alt=\"图片.png\" /><br />\n没问题了那么肯定这样也没问题呗<br />\n<img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-22/f61b63dd-7ec8-4c1e-9db1-05c788ffbc85.png\" alt=\"图片.png\" /></p>\n<p>应该是测试都通过了</p>\n<p><img src=\"https://itwanger-oss.oss-cn-beijing.aliyuncs.com/codingmore/images/2022-03-22/47131bcf-463c-4765-b66b-03eecdb61a75.png\" alt=\"图片.png\" /></p>\n<p>如果前后都有换行符了的测试<br />\n也没有多换行，应该这样就对了。<br />\n(上海战疫录)一线|“迷彩服”“蓝骑士”……“疫线”志愿者“随时待命”</p>\n<p>中新网上海4月8日电 (高志苗)“迷彩服务队来了，他们做事高效又靠谱，他们来了我们就安心了。”在普陀区桃浦镇金祁二期居民区，居民对迷彩服务队有很强的认同感。</p>\n<p>小区老人张阿姨告诉记者，这份认同感得益于迷彩服务队平日里在小区积攒的威望和人气。“平时他们就一直来陪伴我，给我温暖，现在疫情防控期间，有他们在，生活物资之类的也很放心。”</p>\n<p>记者了解到，这支迷彩服务队都由退役军人组成，早在2017年就已成立，而在此次疫情中，队长王宇拉起了“防疫迷彩突击队”，24小时“随时待命”。队伍目前有11人，他们走到各个居民区，参与核酸检测志愿服务工作，为小区老年居民送菜送药。</p>\n<p>王宇告诉中新网记者，“希望凭着我们的力量去帮助更多需要帮助的人，不管是心理上还是物质上给与对方关心，给小朋友树立榜样，也给老年人送去温暖。”</p>\n<p>“迷彩绿”服务的同时也感染了社区居民，他们自发组建起了志愿者服务队。之前就有专业消杀从业经历的小区居民们，发挥自身特长，组建了一支防疫消杀志愿队。“每天看到这些‘迷彩服’志愿者们来回奔波，我自己也是一名军人、一名党员，这一刻我也应该做点什么。”居民蔡昌介绍说，目前，这支消杀志愿队已从最初的两三人，发展到十人规模，成了一支防疫的基层自治力量。</p>\n', '1'), ('46', '4', '2022-04-03 19:28:00', '尽管Knative自2018年以来一直由社区维护，但最近一直有关于该项目的传言，因为谷歌最近将Knative提交给了云原生计算基金会(CNCF)，作为一个孵化项目考虑。\n\n太酷了!但Knative到底是什么呢?\n\n简单地说，Knative是一种简化和增强应用在Kubernetes上运行方式的技术。Knative本身运行在Kubernetes上，有两个主要组件:Knative serving和Knative eventing。这篇文章是关于Knative serving。\n\n\n————————————————\n版权声明：本文为CSDN博主「程序员石磊」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。\n原文链接：https://blog.csdn.net/huangmingleiluo/article/details/123595465', 'knative入门指南', 'java', 'PUBLISHED', null, '2022-04-03 19:28:00', '0', null, '0', '{\"articleCoverUrl\": \"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-03/9b9f2e5c-08da-4c4c-89c5-2dd3cf809675.png\"}', '<p>尽管Knative自2018年以来一直由社区维护，但最近一直有关于该项目的传言，因为谷歌最近将Knative提交给了云原生计算基金会(CNCF)，作为一个孵化项目考虑。</p>\n<p>太酷了!但Knative到底是什么呢?</p>\n<p>简单地说，Knative是一种简化和增强应用在Kubernetes上运行方式的技术。Knative本身运行在Kubernetes上，有两个主要组件:Knative serving和Knative eventing。这篇文章是关于Knative serving。</p>\n<p>————————————————<br />\n版权声明：本文为CSDN博主「程序员石磊」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。<br />\n原文链接：https://blog.csdn.net/huangmingleiluo/article/details/123595465</p>\n', '1'), ('48', '1', '2022-04-07 22:05:18', 'sdfas \n![撸一年.jpeg](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-07/ca4550e0-de42-4390-9ff8-3ec21299bc6d.jpeg)\n', 'sdadfa ', '', 'DRAFT', null, '2022-04-07 22:05:18', '0', null, '0', '{\"articleCoverUrl\": \"\"}', '<p>sdfas<br />\n<img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-07/ca4550e0-de42-4390-9ff8-3ec21299bc6d.jpeg\" alt=\"撸一年.jpeg\" /></p>\n', null), ('49', '4', '2022-04-12 23:45:17', '本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 300kW，电储能和热储能的最大储量为 100kWh，天然气低热值hvagL 取 9.7 k Wh/ m3 ，天然气单价ngJ 取 2 元/m³。微燃机和燃气锅炉参数见表，制冷设备参数见表 ，风力和光伏参数见表，储能设备参数见表。夏季和冬季典型日负荷曲线及风光出力预测曲线4\n## 1.1、设备参数\n### 1.1.1、微燃机及燃气锅炉设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-12/ab8693a2-96ed-4fa7-99b6-adbb8dbd3b1e.png)\n### 1.1.2、制冷设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-12/3f4a5d38-4381-466a-9216-2c6641e8553c.png)\n### 1.1.3、风力和光伏设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-12/742d8cf3-4770-4986-ae24-8ad11c20e7be.png)\n### 1.1.4、储能设备参数\n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-12/2bc4ea37-4a9b-4c07-a377-486cea75d65c.png)\n## 1.2、负荷预测曲线 \n### 1.2.1、负荷预测曲线 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-12/cb8e4ba7-70a2-4be3-bc57-3fab0f9bfa0e.png)\n### 1.2.2、风力、光伏出力预测曲线 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-12/a2177db3-b7c9-4c05-b95a-a472794f2fd7.png)\n### 1.2.3、 夏季典型日负荷及风力、光伏出力预测曲线 \n#### 1.2.3.1、负荷预测曲线 \n​', '石磊测试', '本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 3...', 'PUBLISHED', null, '2022-04-12 23:45:17', '0', null, '0', '{\"articleCoverUrl\": \"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-12/1dae26dd-24d5-4af1-a48d-d1d1faf1b86e.png\"}', '<p>本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 300kW，电储能和热储能的最大储量为 100kWh，天然气低热值hvagL 取 9.7 k Wh/ m3 ，天然气单价ngJ 取 2 元/m³。微燃机和燃气锅炉参数见表，制冷设备参数见表 ，风力和光伏参数见表，储能设备参数见表。夏季和冬季典型日负荷曲线及风光出力预测曲线4</p>\n<h2><a id=\"11_1\"></a>1.1、设备参数</h2>\n<h3><a id=\"111_2\"></a>1.1.1、微燃机及燃气锅炉设备参数</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645568949028-24e1f2c4-2676-462b-91f4-e0a062a9acd2.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=628&amp;id=u2385a006&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=628&amp;originWidth=986&amp;originalType=binary&amp;ratio=1&amp;size=51039&amp;status=done&amp;style=none&amp;taskId=u0dc4d81c-3dff-4c60-9965-6646d763819&amp;width=986\" alt=\"image.png\" /></p>\n<h3><a id=\"112_4\"></a>1.1.2、制冷设备参数</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645568982394-6f1ebe62-95f6-43ec-aba3-664e8b62c0c3.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=255&amp;id=u69967f76&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=255&amp;originWidth=1002&amp;originalType=binary&amp;ratio=1&amp;size=21626&amp;status=done&amp;style=none&amp;taskId=ua8881edb-97b6-4325-9a21-d4e4360aefb&amp;width=1002\" alt=\"image.png\" /></p>\n<h3><a id=\"113_6\"></a>1.1.3、风力和光伏设备参数</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645569379287-adb61363-688e-42a0-ac35-2fd50b958ac5.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=299&amp;id=u9577ea9d&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=299&amp;originWidth=994&amp;originalType=binary&amp;ratio=1&amp;size=23519&amp;status=done&amp;style=none&amp;taskId=u5e8b42b9-2e22-4c9b-97b1-b673a46831d&amp;width=994\" alt=\"image.png\" /></p>\n<h3><a id=\"114_8\"></a>1.1.4、储能设备参数</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645569408294-351c357d-e74b-4849-abdb-6b41c6491957.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=574&amp;id=ub2a8a33b&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=574&amp;originWidth=1018&amp;originalType=binary&amp;ratio=1&amp;size=57364&amp;status=done&amp;style=none&amp;taskId=ubc66d2d6-43e2-43a2-a3b0-8bcdf3e4a95&amp;width=1018\" alt=\"image.png\" /></p>\n<h2><a id=\"12_10\"></a>1.2、负荷预测曲线</h2>\n<h3><a id=\"121_11\"></a>1.2.1、负荷预测曲线</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645569458161-827d37c7-dac2-4225-a4e4-e08b3bd16b25.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=388&amp;id=u9bf17da0&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=388&amp;originWidth=736&amp;originalType=binary&amp;ratio=1&amp;size=29520&amp;status=done&amp;style=none&amp;taskId=u92aab388-c434-4dcb-9bcd-5d9ca983a67&amp;width=736\" alt=\"image.png\" /></p>\n<h3><a id=\"122_13\"></a>1.2.2、风力、光伏出力预测曲线</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645569498207-13de170a-46b7-4085-aafc-5552b705c969.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=399&amp;id=uf353d04b&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=399&amp;originWidth=737&amp;originalType=binary&amp;ratio=1&amp;size=38449&amp;status=done&amp;style=none&amp;taskId=u5439c06b-864b-436e-b043-fcee535246f&amp;width=737\" alt=\"image.png\" /></p>\n<h3><a id=\"123__15\"></a>1.2.3、 夏季典型日负荷及风力、光伏出力预测曲线</h3>\n<h4><a id=\"1231_16\"></a>1.2.3.1、负荷预测曲线</h4>\n<p>​</p>\n', '1'), ('51', '4', '2022-04-15 23:28:06', '本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 300kW，电储能和热储能的最大储量为 100kWh，天然气低热值hvagL 取 9.7 k Wh/ m3 ，天然气单价ngJ 取 2 元/m³。微燃机和燃气锅炉参数见表，制冷设备参数见表 ，风力和光伏参数见表，储能设备参数见表。夏季和冬季典型日负荷曲线及风光出力预测曲线4\n## 1.1、设备参数\n### 1.1.1、微燃机及燃气锅炉设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/16bdc80e-1c36-4864-b545-41c06ba70c60.png)\n### 1.1.2、制冷设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/64eb65bb-20bf-47c8-8df7-decf797d1842.png)\n### 1.1.3、风力和光伏设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/63e25297-3562-4dce-acc9-eaed4b0cff9a.png)\n### 1.1.4、储能设备参数\n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/d3c12c3b-220f-428d-8bcc-92ba7312ed5b.png)\n## 1.2、负荷预测曲线 \n### 1.2.1、负荷预测曲线 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/262f809d-0df6-4e74-bfe1-4dc521b2a561.png)\n### 1.2.2、风力、光伏出力预测曲线 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/a2864962-11c3-4484-b028-1ed712e6ccf8.png)\n### 1.2.3、 夏季典型日负荷及风力、光伏出力预测曲线 \n#### 1.2.3.1、负荷预测曲线 ', '张磊测试1', '本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 3...', 'PUBLISHED', null, '2022-04-15 23:28:06', '0', null, '0', '{\"articleCoverUrl\": \"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/52798f46-92c9-458b-93f1-4bfa1c461205.png\"}', '<p>本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 300kW，电储能和热储能的最大储量为 100kWh，天然气低热值hvagL 取 9.7 k Wh/ m3 ，天然气单价ngJ 取 2 元/m³。微燃机和燃气锅炉参数见表，制冷设备参数见表 ，风力和光伏参数见表，储能设备参数见表。夏季和冬季典型日负荷曲线及风光出力预测曲线4</p>\n<h2><a id=\"11_1\"></a>1.1、设备参数</h2>\n<h3><a id=\"111_2\"></a>1.1.1、微燃机及燃气锅炉设备参数</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645568949028-24e1f2c4-2676-462b-91f4-e0a062a9acd2.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=628&amp;id=u2385a006&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=628&amp;originWidth=986&amp;originalType=binary&amp;ratio=1&amp;size=51039&amp;status=done&amp;style=none&amp;taskId=u0dc4d81c-3dff-4c60-9965-6646d763819&amp;width=986\" alt=\"image.png\" /></p>\n<h3><a id=\"112_4\"></a>1.1.2、制冷设备参数</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645568982394-6f1ebe62-95f6-43ec-aba3-664e8b62c0c3.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=255&amp;id=u69967f76&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=255&amp;originWidth=1002&amp;originalType=binary&amp;ratio=1&amp;size=21626&amp;status=done&amp;style=none&amp;taskId=ua8881edb-97b6-4325-9a21-d4e4360aefb&amp;width=1002\" alt=\"image.png\" /></p>\n<h3><a id=\"113_6\"></a>1.1.3、风力和光伏设备参数</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645569379287-adb61363-688e-42a0-ac35-2fd50b958ac5.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=299&amp;id=u9577ea9d&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=299&amp;originWidth=994&amp;originalType=binary&amp;ratio=1&amp;size=23519&amp;status=done&amp;style=none&amp;taskId=u5e8b42b9-2e22-4c9b-97b1-b673a46831d&amp;width=994\" alt=\"image.png\" /></p>\n<h3><a id=\"114_8\"></a>1.1.4、储能设备参数</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645569408294-351c357d-e74b-4849-abdb-6b41c6491957.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=574&amp;id=ub2a8a33b&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=574&amp;originWidth=1018&amp;originalType=binary&amp;ratio=1&amp;size=57364&amp;status=done&amp;style=none&amp;taskId=ubc66d2d6-43e2-43a2-a3b0-8bcdf3e4a95&amp;width=1018\" alt=\"image.png\" /></p>\n<h2><a id=\"12_10\"></a>1.2、负荷预测曲线</h2>\n<h3><a id=\"121_11\"></a>1.2.1、负荷预测曲线</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645569458161-827d37c7-dac2-4225-a4e4-e08b3bd16b25.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=388&amp;id=u9bf17da0&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=388&amp;originWidth=736&amp;originalType=binary&amp;ratio=1&amp;size=29520&amp;status=done&amp;style=none&amp;taskId=u92aab388-c434-4dcb-9bcd-5d9ca983a67&amp;width=736\" alt=\"image.png\" /></p>\n<h3><a id=\"122_13\"></a>1.2.2、风力、光伏出力预测曲线</h3>\n<p><img src=\"https://cdn.nlark.com/yuque/0/2022/png/354158/1645569498207-13de170a-46b7-4085-aafc-5552b705c969.png#clientId=u2970fe75-9af3-4&amp;from=paste&amp;height=399&amp;id=uf353d04b&amp;margin=%5Bobject%20Object%5D&amp;name=image.png&amp;originHeight=399&amp;originWidth=737&amp;originalType=binary&amp;ratio=1&amp;size=38449&amp;status=done&amp;style=none&amp;taskId=u5439c06b-864b-436e-b043-fcee535246f&amp;width=737\" alt=\"image.png\" /></p>\n<h3><a id=\"123__15\"></a>1.2.3、 夏季典型日负荷及风力、光伏出力预测曲线</h3>\n<h4><a id=\"1231_16\"></a>1.2.3.1、负荷预测曲线</h4>\n', '1');
INSERT INTO `posts` VALUES ('53', '4', '2022-04-15 23:37:10', '本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 300kW，电储能和热储能的最大储量为 100kWh，天然气低热值hvagL 取 9.7 k Wh/ m3 ，天然气单价ngJ 取 2 元/m³。微燃机和燃气锅炉参数见表，制冷设备参数见表 ，风力和光伏参数见表，储能设备参数见表。夏季和冬季典型日负荷曲线及风光出力预测曲线4\n## 1.1、设备参数\n### 1.1.1、微燃机及燃气锅炉设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/371a6970-b283-4374-a2c4-f9de75b6169a.png)\n### 1.1.2、制冷设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/6e8b3141-bb82-450e-acf1-a42c137970b8.png)\n### 1.1.3、风力和光伏设备参数 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/72bede41-36fa-4e3c-a3af-5d6cb9c43d19.png)\n### 1.1.4、储能设备参数\n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/73320af5-cc95-4804-bef6-675485ee9f78.png)\n## 1.2、负荷预测曲线 \n### 1.2.1、负荷预测曲线 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/85899cf3-cd4f-4f5b-af54-cef5572192c2.png)\n### 1.2.2、风力、光伏出力预测曲线 \n![image.png](https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/3f2eb59c-435d-46a2-84e0-aa492f3f9d65.png)\n### 1.2.3、 夏季典型日负荷及风力、光伏出力预测曲线 \n#### 1.2.3.1、负荷预测曲线 ', '234', '本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 3...', 'PUBLISHED', null, '2022-04-15 23:37:10', '0', null, '0', '{\"articleCoverUrl\": \"\"}', '<p>本文选取某小型冷热电联供系统为例进行研究，算例中主要设备的参数如下：微燃机的最大功率为 100kW，燃气锅炉的最大功率为 200kW，吸收式制冷机的最大功率为300kW，电制冷机的最大功率为 300kW，电储能和热储能的最大储量为 100kWh，天然气低热值hvagL 取 9.7 k Wh/ m3 ，天然气单价ngJ 取 2 元/m³。微燃机和燃气锅炉参数见表，制冷设备参数见表 ，风力和光伏参数见表，储能设备参数见表。夏季和冬季典型日负荷曲线及风光出力预测曲线4</p>\n<h2><a id=\"11_1\"></a>1.1、设备参数</h2>\n<h3><a id=\"111_2\"></a>1.1.1、微燃机及燃气锅炉设备参数</h3>\n<p><img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/371a6970-b283-4374-a2c4-f9de75b6169a.png\" alt=\"image.png\" /></p>\n<h3><a id=\"112_4\"></a>1.1.2、制冷设备参数</h3>\n<p><img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/6e8b3141-bb82-450e-acf1-a42c137970b8.png\" alt=\"image.png\" /></p>\n<h3><a id=\"113_6\"></a>1.1.3、风力和光伏设备参数</h3>\n<p><img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/72bede41-36fa-4e3c-a3af-5d6cb9c43d19.png\" alt=\"image.png\" /></p>\n<h3><a id=\"114_8\"></a>1.1.4、储能设备参数</h3>\n<p><img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/73320af5-cc95-4804-bef6-675485ee9f78.png\" alt=\"image.png\" /></p>\n<h2><a id=\"12_10\"></a>1.2、负荷预测曲线</h2>\n<h3><a id=\"121_11\"></a>1.2.1、负荷预测曲线</h3>\n<p><img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/85899cf3-cd4f-4f5b-af54-cef5572192c2.png\" alt=\"image.png\" /></p>\n<h3><a id=\"122_13\"></a>1.2.2、风力、光伏出力预测曲线</h3>\n<p><img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-04-15/3f2eb59c-435d-46a2-84e0-aa492f3f9d65.png\" alt=\"image.png\" /></p>\n<h3><a id=\"123__15\"></a>1.2.3、 夏季典型日负荷及风力、光伏出力预测曲线</h3>\n<h4><a id=\"1231_16\"></a>1.2.3.1、负荷预测曲线</h4>\n', '1'), ('54', '1', null, '11', '11', '', 'DRAFT', null, '2022-04-21 11:13:40', '0', null, '0', '{\"articleCoverUrl\": \"\"}', '<p>11</p>\n', null), ('60', '1', '2022-04-26 09:30:00', '123123', '123123', '', 'PUBLISHED', null, '2022-04-26 09:30:00', '0', null, '0', null, '', null), ('61', '1', '2022-04-26 09:50:00', '123123', '123123', '', 'PUBLISHED', null, '2022-04-26 09:50:00', '0', null, '0', null, '', null), ('62', '1', null, '123123', '123', '123123', 'PUBLISHED', null, '2022-05-10 14:35:21', '0', null, '0', '{\"articleCoverUrl\": \"https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-10/514f48aa-882d-46b7-885c-2b43253ed44c.jpeg\"}', '<p>123123</p>\n', null), ('63', '5', null, '# 这是个文章标题\n\n这是个测试文档\n\n​		这里是正文：![img](https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-14/e443a27c-4538-4877-be4d-b96e7e4c083d.jpg)\n\n上海普陀区的光新大楼小区，从三月底开始进入封闭管理状态，到现在已经持续了一个多月。整个小区共有居民4000人左右，每天的生活必需品需求量很大，其中300多人有日常用药的需求，他们中90%都是老人。如何确保他们及时拿到需要的药品，是社区一直在操心的事。\n\n　　为了解决居民用药问题，社区紧急招募志愿者，成立了配药小队，专门为这些居民服务。\n\n志愿者们每天都在医院和社区各楼层之间奔忙，非常辛苦。在操作中他们发现，每天的信息收集整理工作耗费了大量时间。如果能够更加高效地整合信息，就能够节省时间，让居民及时地拿到药品。\n\n　　29岁的郑健玮是一家互联网企业的产品设计师，也是小区内的老住户，小区封闭后，他一直活跃在各个微信群和志愿团队中。看到配药团队遇到的问题，他就开始思考如何利用自己的专业知识，让这个工作更加高效。经过不断尝试，他用石墨文档设计制作了一份在线表格，让住户们把所有用药信息在线填写，然后利用文档的后台功能将信息自动分类。\n\n　　光新大楼小区居民郑健玮说：“收集完之后，它可以生成一张多余表格，这个表格就可以根据不同的数据维度去进行分类，哪栋楼的，其次是用药的紧急程度，还有就是我们要去哪些医院配，再根据医院不同，去划分这个数据维度。”\n\n　　由于有用药需求的居民以老人为主，考虑到他们对于网络工具可能出现的操作障碍，志愿者们还想到了很多贴心的方法。\n\n![img](https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-14/d3167130-3f03-46b9-8136-36b77a4b9d06.jpg)\n\n郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”\n郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\n\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\n\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\n\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\n\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”', '测试文件1', '这是个文章标题 这是个测试文档 ​ 这里是正文： 上海普陀区的光新大楼小区，从三月底开始进入封闭管理状态，到现在已经持续了一个多月。整个小区共有居民4000人左右，每天的生活必需品需求量很大，其...', 'PUBLISHED', null, '2022-05-15 21:57:47', '0', null, '0', '{\"articleCoverUrl\": \"\"}', '<h1><a id=\"_0\"></a>这是个文章标题</h1>\n<p>这是个测试文档</p>\n<p>​		这里是正文：<img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-14/e443a27c-4538-4877-be4d-b96e7e4c083d.jpg\" alt=\"img\" /></p>\n<p>上海普陀区的光新大楼小区，从三月底开始进入封闭管理状态，到现在已经持续了一个多月。整个小区共有居民4000人左右，每天的生活必需品需求量很大，其中300多人有日常用药的需求，他们中90%都是老人。如何确保他们及时拿到需要的药品，是社区一直在操心的事。</p>\n<p>为了解决居民用药问题，社区紧急招募志愿者，成立了配药小队，专门为这些居民服务。</p>\n<p>志愿者们每天都在医院和社区各楼层之间奔忙，非常辛苦。在操作中他们发现，每天的信息收集整理工作耗费了大量时间。如果能够更加高效地整合信息，就能够节省时间，让居民及时地拿到药品。</p>\n<p>29岁的郑健玮是一家互联网企业的产品设计师，也是小区内的老住户，小区封闭后，他一直活跃在各个微信群和志愿团队中。看到配药团队遇到的问题，他就开始思考如何利用自己的专业知识，让这个工作更加高效。经过不断尝试，他用石墨文档设计制作了一份在线表格，让住户们把所有用药信息在线填写，然后利用文档的后台功能将信息自动分类。</p>\n<p>光新大楼小区居民郑健玮说：“收集完之后，它可以生成一张多余表格，这个表格就可以根据不同的数据维度去进行分类，哪栋楼的，其次是用药的紧急程度，还有就是我们要去哪些医院配，再根据医院不同，去划分这个数据维度。”</p>\n<p>由于有用药需求的居民以老人为主，考虑到他们对于网络工具可能出现的操作障碍，志愿者们还想到了很多贴心的方法。</p>\n<p><img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-14/d3167130-3f03-46b9-8136-36b77a4b9d06.jpg\" alt=\"img\" /></p>\n<p>郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”<br />\n郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”<br />\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”<br />\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”<br />\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”<br />\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”<br />\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”<br />\n郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”</p>\n', '1'), ('65', '1', null, '<a href=\"docs/zhishixingqiu/\">? 沉默王二-《Java 程序员进阶之路》官方知识星球来啦！！！</a>\n\n如果你需要专属Java学习/面试小册/一对一交流/简历修改/专属求职指南/学习打卡，不妨花 3 分钟左右看看星球的详细介绍：<a href=\"docs/zhishixingqiu/\">沉默王二-《Java 程序员进阶之路》详细介绍 </a>（一定要确定自己真的需要再加入，一定要看完详细介绍之后再加我）。\n\n<p align=\"center\">\n  <a href=\"https://tobebetterjavaer.com\">\n    <img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/logo-01.png\" width=\"260px\" alt=\"Java 程序员进阶之路\">\n  </a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://github.com/itwanger/toBeBetterJavaer\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Github-toBeBetterJavaer-red.svg\"></a>\n  <a href=\"https://gitee.com/itwanger/toBeBetterJavaer\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Gitee-toBeBetterJavaer-blue.svg\"></a>\n  <a href=\"https://space.bilibili.com/513340480\" target=\"_blank\"><img src=\"https://img.shields.io/badge/bilibili-哔哩哔哩-critical\"></a>\n  <a href=\"https://mp.weixin.qq.com/s/ExjM-xdqMFFY1NIZffz-Ng\" target=\"_blank\">\n    <img src=\"https://img.shields.io/badge/计算机经典电子书-下载-green.svg\" alt=\"无套路下载\">\n  </a>\n</p>\n\n\n# 为什么会有这个开源知识库\n\n> [!NOTE]\n> 知识库取名 **toBeBetterJavaer**，即 **To Be Better Javaer**，意为「成为一名更好的 Java 程序员」，是自学 Java 以来所有原创文章和学习资料的大聚合。内容包括 Java 基础、Java 并发编程、Java 虚拟机、Java 企业级开发、Java 面试等核心知识点。据说每一个优秀的 Java 程序员都喜欢她，风趣幽默、通俗易懂。学 Java，就认准 Java 程序员进阶之路?。\n>  \n>  知识库旨在为学习 Java 的小伙伴提供一系列：\n>  - **优质的原创 Java 教程**\n>  - **全面清晰的 Java 学习路线**\n>  - **免费但靠谱的 Java 学习资料**\n>  - **精选的 Java 岗求职面试指南**\n>  - **Java 企业级开发所需的必备技术**\n>\n> 赠人玫瑰手有余香。知识库会持续保持**更新**，欢迎收藏品鉴！\n>\n> **转载须知** ：以下所有文章如非文首说明为转载皆为我（沉默王二）的原创，转载在文首注明出处，如发现恶意抄袭/搬运，会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境！\n> \n> 推荐你通过在线阅读网站进行阅读，体验更好，速度更快！\n> \n> - [Java 程序员进阶之路在线阅读网站（VuePress 版）](https://tobebetterjavaer.com/)\n> - [Java 程序员进阶之路在线阅读网站（docsify 版）](https://docsify.tobebetterjavaer.com/)\n> \n> 建议给本仓库点个 star，满足一下我的虚荣心，内容质量也绝对值得你一个 star。我还在继续创作，给我一点继续更新的动力，笔芯。\n\n\n# 知识库地图\n\n> [!NOTE]\n> 知识库收录的核心内容就全在这里面了，大类分为 Java 核心、Java 企业级开发、数据库、计算机基础、求职面试、学习资源、程序人生，几乎你需要的这里都有。\n\n![](http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/tobebetterjavaer-map.png)\n\n\n# 学习路线\n\n>[!NOTE]\n> 除了 Java 学习路线，还有 C语言、C++、Python、Go 语言、操作系统、前端、蓝桥杯等硬核学习路线，欢迎收藏品鉴！\n\n  * [Java学习路线一条龙版（建议收藏:+1:）](docs/xuexiluxian/java/yitiaolong.md)\n  * [Java并发编程学习路线（建议收藏:+1:）](docs/xuexiluxian/java/thread.md)\n  * [Java虚拟机学习路线（建议收藏:+1:）](docs/xuexiluxian/java/jvm.md)\n  * [C语言学习路线（建议收藏:+1:）](docs/xuexiluxian/c.md)\n  * [C++学习路线（建议收藏:+1:）](docs/xuexiluxian/ccc.md)\n  * [Python学习路线（建议收藏:+1:）](docs/xuexiluxian/python.md)\n  * [Go语言学习路线（建议收藏:+1:）](docs/xuexiluxian/go.md)\n  * [操作系统学习路线（建议收藏:+1:）](docs/xuexiluxian/os.md)\n  * [前端学习路线（建议收藏:+1:）](docs/xuexiluxian/qianduan.md)\n  * [蓝桥杯学习路线（建议收藏:+1:）](docs/xuexiluxian/lanqiaobei.md)\n  * [算法和数据结构学习路线（建议收藏:+1:）](docs/xuexiluxian/algorithm.md)\n\n# 面渣逆袭\n\n> [!NOTE]\n>  **面试前必读系列**！包括 Java 基础、Java 集合框架、Java 并发编程、Java 虚拟机、Spring、Redis 等等。\n\n- [面渣逆袭（Java 基础篇）必看:+1:](docs/sidebar/sanfene/javase.md)\n- [面渣逆袭（Java 集合框架篇）必看:+1:](docs/sidebar/sanfene/collection.md)\n- [面渣逆袭（Java 并发编程篇）必看:+1:](docs/sidebar/sanfene/javathread.md)\n- [面渣逆袭（Java 虚拟机篇）必看:+1:](docs/sidebar/sanfene/jvm.md)\n- [面渣逆袭（Spring）必看:+1:](docs/sidebar/sanfene/spring.md)\n- [面渣逆袭（Redis）必看:+1:](docs/sidebar/sanfene/redis.md)\n\n# 学习建议\n\n> [!NOTE]\n>  **收集了我所有的知乎高赞帖子**！全方位迷茫解惑。\n\n- [如何阅读《深入理解计算机系统》这本书？](docs/xuexijianyi/read-csapp.md)\n- [电子信息工程最好的出路的是什么？](docs/xuexijianyi/electron-information-engineering.md)\n\n\n# Java核心\n\n> [!NOTE]\n>  **Java核心非常重要**！我将其分成了Java 基础篇（包括基础语法、面向对象、集合框架、异常处理、Java IO 等）、Java 并发篇和 Java 虚拟机篇。\n\n\n## Java概述\n\n- [什么是Java？Java发展简史，Java的优势](docs/overview/what-is-java.md)\n- [第一个Java程序：Hello World](docs/overview/hello-world.md)\n\n\n## Java基础语法\n\n- [Java支持的8种基本数据类型](docs/basic-grammar/basic-data-type.md)\n- [Java流程控制语句](docs/basic-grammar/flow-control.md)\n- [Java运算符](docs/basic-grammar/operator.md)\n- [Java注释：单行、多行和文档注释](docs/basic-grammar/javadoc.md)\n- [Java中常用的48个关键字](docs/basic-extra-meal/48-keywords.md)\n- [Java命名规范（非常全面，可以收藏）](docs/basic-extra-meal/java-naming.md)\n\n## Java面向对象编程\n\n- [怎么理解Java中类和对象的概念？](docs/oo/object-class.md)\n- [Java变量的作用域：局部变量、成员变量、静态变量、常量](docs/oo/var.md)\n- [Java方法](docs/oo/method.md)\n- [Java构造方法](docs/oo/construct.md)\n- [Java代码初始化块](docs/oo/code-init.md)\n- [Java抽象类](docs/oo/abstract.md)\n- [Java接口](docs/oo/interface.md)\n- [Java中的static关键字解析](docs/oo/static.md)\n- [Java中this和super的用法总结](docs/oo/this-super.md)\n- [浅析Java中的final关键字](docs/oo/final.md)\n- [Java instanceof关键字用法](docs/oo/instanceof.md)\n- [深入理解Java中的不可变对象](docs/basic-extra-meal/immutable.md)\n- [Java中可变参数的使用](docs/basic-extra-meal/varables.md)\n- [深入理解Java泛型](docs/basic-extra-meal/generic.md)\n- [深入理解Java注解](docs/basic-extra-meal/annotation.md)\n- [Java枚举（enum）](docs/basic-extra-meal/enum.md)\n- [大白话说Java反射：入门、使用、原理](docs/basic-extra-meal/fanshe.md)\n\n## 字符串&数组\n\n- [为什么String是不可变的？](docs/string/immutable.md)\n- [深入了解Java字符串常量池](docs/string/constant-pool.md)\n- [深入解析 String#intern](docs/string/intern.md)\n- [Java判断两个字符串是否相等？](docs/string/equals.md)\n- [Java字符串拼接的几种方式](docs/string/join.md)\n- [如何在Java中优雅地分割String字符串？](docs/string/split.md)\n- [深入理解Java数组](docs/array/array.md)\n- [如何优雅地打印Java数组？](docs/array/print.md)\n\n## 集合框架（容器）\n\n- [Java集合框架](docs/collection/gailan.md)\n- [Java集合ArrayList详解](docs/collection/arraylist.md)\n- [Java集合LinkedList详解](docs/collection/linkedlist.md)\n- [Java中ArrayList和LinkedList的区别](docs/collection/list-war-2.md)\n- [Java中的Iterator和Iterable区别](docs/collection/iterator-iterable.md)\n- [为什么阿里巴巴强制不要在foreach里执行删除操作](docs/collection/fail-fast.md)\n- [Java8系列之重新认识HashMap](docs/collection/hashmap.md)\n\n## Java输入输出\n\n- [Java IO学习整理](docs/io/shangtou.md)\n- [如何给女朋友解释什么是 BIO、NIO 和 AIO？](docs/io/BIONIOAIO.md)\n\n\n## 异常处理\n\n- [一文读懂Java异常处理](docs/exception/gailan.md)\n- [详解Java7新增的try-with-resouces语法](docs/exception/try-with-resouces.md)\n- [Java异常处理的20个最佳实践](docs/exception/shijian.md)\n- [Java空指针NullPointerException的传说](docs/exception/npe.md)\n\n## 常用工具类\n\n- [Java Arrays工具类10大常用方法](docs/common-tool/arrays.md)\n- [Java集合框架：Collections工具类](docs/common-tool/collections.md)\n- [Hutool：国产良心工具包，让你的Java变得更甜](docs/common-tool/hutool.md)\n- [Google开源的Guava工具库，太强大了～](docs/common-tool/guava.md)\n\n## Java新特性\n\n- [Java 8 Stream流详细用法](docs/java8/stream.md)\n- [Java 8 Optional最佳指南](docs/java8/optional.md)\n- [深入浅出Java 8 Lambda表达式](docs/java8/Lambda.md)\n\n## Java重要知识点\n\n- [彻底弄懂Java中的Unicode和UTF-8编码](docs/basic-extra-meal/java-unicode.md)\n- [Java中int、Integer、new Integer之间的区别](docs/basic-extra-meal/int-cache.md)\n- [深入剖析Java中的拆箱和装箱](docs/basic-extra-meal/box.md)\n- [彻底讲明白的Java浅拷贝与深拷贝](docs/basic-extra-meal/deep-copy.md)\n- [深入理解Java中的hashCode方法](docs/basic-extra-meal/hashcode.md)\n- [一次性搞清楚equals和hashCode](docs/basic-extra-meal/equals-hashcode.md)\n- [Java重写(Override)与重载(Overload)](docs/basic-extra-meal/override-overload.md)\n- [Java重写（Overriding）时应当遵守的11条规则](docs/basic-extra-meal/Overriding.md)\n- [Java到底是值传递还是引用传递？](docs/basic-extra-meal/pass-by-value.md)\n- [Java不能实现真正泛型的原因是什么？](docs/basic-extra-meal/true-generic.md)\n- [详解Java中Comparable和Comparator的区别](docs/basic-extra-meal/comparable-omparator.md)\n- [jdk9为何要将String的底层实现由char[]改成了byte[]?](docs/basic-extra-meal/jdk9-char-byte-string.md)\n- [为什么JDK源码中，无限循环大多使用for(;;)而不是while(true)?](docs/basic-extra-meal/jdk-while-for-wuxian-xunhuan.md)\n- [先有Class还是先有Object？](docs/basic-extra-meal/class-object.md)\n- [instanceof关键字是如何实现的？](docs/basic-extra-meal/instanceof-jvm.md)\n\n\n## Java并发编程\n\n- [室友打了一把王者就学会了创建Java线程的3种方式](docs/thread/wangzhe-thread.md)\n- [Java线程的6种状态及切换(透彻讲解)](docs/thread/thread-state-and-method.md)\n- [线程组是什么？线程优先级如何设置？](docs/thread/thread-group-and-thread-priority.md)\n- [进程与线程的区别是什么？](docs/thread/why-need-thread.md)\n- [并发编程带来了哪些问题？](docs/thread/thread-bring-some-problem.md)\n- [全面理解Java的内存模型（JMM）](docs/thread/jmm.md)\n- [Java并发编程volatile关键字解析](docs/thread/volatile.md)\n- [Java中的synchronized关键字锁的到底是什么？](docs/thread/synchronized.md)\n- [Java实现CAS的原理](docs/thread/cas.md)\n- [Java并发AQS详解](docs/thread/aqs.md)\n- [大致了解下Java的锁接口和锁](docs/thread/lock.md)\n- [深入理解Java并发重入锁ReentrantLock](docs/thread/reentrantLock.md)\n- [深入理解Java并发读写锁ReentrantReadWriteLock](docs/thread/ReentrantReadWriteLock.md)\n- [深入理解Java并发线程协作类Condition](docs/thread/condition.md)\n- [深入理解Java并发线程线程阻塞唤醒类LockSupport](docs/thread/LockSupport.md)\n- [简单聊聊Java的并发集合容器](docs/thread/map.md)\n- [吊打Java并发面试官之ConcurrentHashMap](docs/thread/ConcurrentHashMap.md)\n- [吊打Java并发面试官之ConcurrentLinkedQueue](docs/thread/ConcurrentLinkedQueue.md)\n- [吊打Java并发面试官之CopyOnWriteArrayList](docs/thread/CopyOnWriteArrayList.md)\n- [吊打Java并发面试官之ThreadLocal](docs/thread/ThreadLocal.md)\n- [吊打Java并发面试官之BlockingQueue](docs/thread/BlockingQueue.md)\n- [面试必备：Java线程池解析](docs/thread/pool.md)\n- [为什么阿里巴巴要禁用Executors创建线程池？](docs/thread/ali-executors.md)\n- [深入剖析Java计划任务ScheduledThreadPoolExecutor](docs/thread/ScheduledThreadPoolExecutor.md)\n- [Java atomic包中的原子操作类总结](docs/thread/atomic.md)\n- [Java并发编程通信工具类CountDownLatch等一网打尽](docs/thread/CountDownLatch.md)\n- [深入理解Java并发编程之Fork/Join框架](docs/thread/fork-join.md)\n- [从根上理解生产者-消费者模式](docs/thread/shengchanzhe-xiaofeizhe.md)\n\n\n## Java虚拟机\n\n- [JVM到底是什么？](docs/jvm/what-is-jvm.md)\n- [JVM到底是如何运行Java代码的？](docs/jvm/how-run-java-code.md)\n- [我竟然不再抗拒Java的类加载机制了](docs/jvm/class-load.md)\n- [详解Java的类文件（class文件）结构](docs/jvm/class-file-jiegou.md)\n- [从javap的角度轻松看懂字节码](docs/jvm/bytecode.md)\n- [JVM字节码指令详解](docs/jvm/zijiema-zhiling.md)\n- [虚拟机是如何执行字节码指令的？](docs/jvm/how-jvm-run-zijiema-zhiling.md)\n- [HSDB（Hotspot Debugger）从入门到实战](docs/jvm/hsdb.md)\n- [史上最通俗易懂的ASM教程](docs/jvm/asm.md)\n- [自己编译JDK](docs/jvm/compile-jdk.md)\n- [深入理解JVM的内存结构](docs/jvm/neicun-jiegou.md)\n- [Java 创建的对象到底放在哪？](docs/jvm/whereis-the-object.md)\n- [咱们从头到尾说一次Java垃圾回收](docs/jvm/gc.md)\n- [图解Java的垃圾回收机制](docs/jvm/tujie-gc.md)\n- [Java问题诊断和排查工具（查看JVM参数、内存使用情况及分析）](docs/jvm/problem-tools.md)\n- [Java即时编译（JIT）器原理解析及实践](docs/jvm/jit.md)\n- [一次内存溢出排查优化实战](docs/jvm/oom.md)\n- [一次生产CPU 100% 排查优化实践](docs/jvm/cpu-percent-100.md)\n- [JVM 核心知识点总结](docs/jvm/zongjie.md)\n\n\n# Java企业级开发\n\n> [!NOTE]\n>  - **到底能不能成为一名合格的 Java 程序员，从理论走向实战？Java 企业级开发这部分内容就是一个分水岭**！\n>  - 纸上得来终觉浅，须知此事要躬行。\n\n## 开发工具\n\n- [终于把项目构建神器Maven捋清楚了~](docs/maven/maven.md)\n- [我在工作中是如何使用Git的](docs/git/git-qiyuan.md)\n- [5分钟带你深入浅出搞懂Nginx](docs/nginx/nginx.md)\n\n## IDE/编辑器\n\n- [4个高级的IntelliJ IDEA调试技巧](docs/ide/4-debug-skill.md)\n\n## Spring\n\n- [Spring AOP扫盲](docs/springboot/aop-log.md)\n- [Spring IoC扫盲](docs/springboot/ioc.md)\n\n\n## SpringBoot\n\n- [一分钟快速搭建Spring Boot项目](docs/springboot/initializr.md)\n- [Spring Boot 整合 MySQL 和 Druid](docs/springboot/mysql-druid.md)\n- [Spring Boot 整合 JPA](docs/springboot/jpa.md)\n- [Spring Boot 整合 Redis 实现缓存](docs/redis/redis-springboot.md)\n- [Spring Boot 整合 MyBatis-Plus AutoGenerator生成项目骨架代码](docs/kaiyuan/auto-generator.md)\n- [Spring Boot 为什么不需要额外安装Tomcat？](docs/springboot/tomcat.md)\n\n## 辅助工具/轮子\n\n- [Tabby：一款逼格更高的开源终端工具](docs/gongju/tabby.md)\n- [Warp：一款21世纪人用的终端工具](docs/gongju/warp.md)\n- [Chocolatey Homebrew：两款惊艳的Shell软件管理器](docs/gongju/Chocolatey-Homebrew.md)\n- [chiner：一款开源的数据库设计神器](docs/gongju/chiner.md)\n- [DBeaver：一款免费的数据库操作工具](docs/gongju/DBeaver.md)\n- [knife4j：一款界面更炫酷的API文档生成神器](docs/gongju/knife4j.md)\n- [Junit：一个开源的Java单元测试框架](docs/gongju/junit.md)\n- [fastjson：阿里巴巴开源的JSON解析库](docs/gongju/fastjson.md)\n- [Gson：Google开源的JSON解析库](docs/gongju/gson.md)\n- [Jackson：GitHub上star数最多的JSON解析库](docs/gongju/jackson.md)\n- [Forest：一款极简的声明式HTTP调用API框架](docs/gongju/forest.md)\n- [Log4j：Log4j 2的前身，Java日志框架的鼻祖](docs/gongju/log4j.md)\n- [Log4j 2：Apache维护的一款高性能日志记录工具](docs/gongju/log4j2.md)\n- [Logback：Spring Boot内置的日志处理框架](docs/gongju/logback.md)\n- [SLF4J：阿里巴巴强制使用的日志门面担当](docs/gongju/slf4j.md)\n- [其他辅助工具/轮子](docs/gongju/others.md)\n\n\n## 安全篇\n\n## 分布式\n\n- [全文搜索引擎Elasticsearch入门教程](docs/elasticsearch/rumen.md)\n- [可能是把ZooKeeper概念讲的最清楚的一篇文章](docs/zookeeper/jibenjieshao.md)\n\n## 高性能\n\n### 消息队列\n\n- [RabbitMQ入门教程（概念、应用场景、安装、使用）](docs/mq/rabbitmq-rumen.md)\n- [MQ：怎么确保消息100%不丢失？](docs/mq/100-budiushi.md)\n\n## 高可用\n\n# 数据库\n\n> [!NOTE]\n>  - **简而言之，就是按照数据结构来组织、存储和管理数据的仓库**。几乎所有的 Java 后端开发都要学习数据库这块的知识，包括关系型数据库 MySQL，缓存中间件 Redis，非关系型数据库 MongoDB 等。\n\n## MySQL\n\n## Redis\n\n- [Redis入门(适合新手)](docs/redis/rumen.md)\n- [简单聊聊缓存雪崩、穿透、击穿](docs/redis/xuebeng-chuantou-jichuan.md)\n\n\n\n## MongoDB\n\n- [MongoDB最基础入门教程](docs/mongodb/rumen.md)\n\n\n# 计算机基础\n\n> [!NOTE]\n>  - **计算机基础包括操作系统、计算机网络、计算机组成原理、数据结构与算法等**。对于任何一名想要走得更远的 Java 后端开发来说，都是必须要花时间和精力去夯实的。\n>  - 万丈高露平地起，勿在浮沙筑高台。\n\n- [计算机操作系统知识点大梳理](docs/cs/os.md)\n- [计算机网络核心知识点大梳理](docs/cs/wangluo.md)\n\n\n# 求职面试\n\n> [!NOTE]\n>  - **学习了那么多 Java 知识，耗费了无数的脑细胞，熬掉了无数根秀发，为的是什么？当然是谋取一份心仪的 offer 了**。那八股文、面试题、城市选择、优质面经又怎能少得了呢？\n>  - 千淘万漉虽辛苦，吹尽狂沙始到金。\n\n## 面试题集合\n\n- [Java：34道精选高频面试题](docs/baguwen/java-basic-34.md)\n- [Java：13道HashMap精选面试题](docs/collection/hashmap-interview.md)\n- [Redis：12道精选高频面试题）](docs/mianjing/redis12question.md)\n- [Nginx：40道精选面试题](docs/nginx/40-interview.md)\n\n\n## 背诵版八股文\n\n- [Java 基础八股文（背诵版）必看:+1:](docs/baguwen/java-basic.md)\n- [Java 并发编程八股文（背诵版）必看:+1:](docs/baguwen/java-thread.md)\n- [Java 虚拟机八股文（背诵版）必看:+1:](docs/baguwen/jvm.md)\n- [MySQL 八股文（背诵版）必看:+1:](docs/sidebar/herongwei/mysql.md)\n\n\n## 优质面经\n\n- [春招斩获深圳腾讯PCG和杭州阿里云](docs/mianjing/shanganaliyun.md)\n- [社招拿下阿里美团头条京东滴滴)](https://mp.weixin.qq.com/s/h2tV6v5Rh6jHdO9x0p63-g)\n- [字节小姐姐的一份秋招攻略](https://mp.weixin.qq.com/s/0hCJy0m8nHm08HfyXKQT1A)\n- [面试常见词汇扫盲+常见大厂面试特点分享](https://mp.weixin.qq.com/s/6TYEDM73N68vKXpmLRKhHA)\n- [双非学历的社畜，历经 6 轮面试，最终拿下阿里Offer](https://mp.weixin.qq.com/s/vnMZY9Gsy3o1FwMi4f1GlA)\n\n## 面试准备\n\n- [简历如何优化，简历如何投递，面试如何准备？](https://mp.weixin.qq.com/s/qurUqeD_VyiJRtB38vOuSw)\n- [校招时间节点、简历编写、笔试、、HR面、实习等注意事项](https://mp.weixin.qq.com/s/rO7cU4NX74CoWADo_O4IUw)\n\n## 城市选择\n\n- [北京都有哪些牛逼的互联网公司？](docs/cityselect/beijing.md)\n- [想去广州了！](docs/cityselect/guangzhou.md)\n- [深圳有哪些牛批的互联网公司？](docs/cityselect/shenzhen.md)\n- [西安有哪些不错的互联网公司？](docs/cityselect/xian.md)\n- [青岛有牛逼的互联网公司吗？](docs/cityselect/qingdao.md)\n- [郑州有哪些不错的互联网公司？](docs/cityselect/zhengzhou.md)\n- [想搬去苏州生活了。](docs/cityselect/suzhou.md)\n- [南京有哪些靠谱的互联网公司？](docs/cityselect/nanjing.md)\n- [杭州有哪些顶级的互联网公司？](docs/cityselect/hangzhou.md)\n- [成都有哪些牛批的互联网公司？](docs/cityselect/chengdu.md)\n\n## 工作体会\n\n\n\n# 学习资源\n\n> [!NOTE]\n>  - **不知道学什么？不知道该怎么学？找不到优质的学习资源**？这些问题在这里统统都可以找到答案。\n>  - 我会把自己十多年的编程经验和学习资源毫不保留的分享出来。\n\n## PDF下载\n\n- [?下载→Java程序员常读书单](docs/download/java.md)\n- [?下载→最全最硬核的Java面试 “备战” 资料](https://mp.weixin.qq.com/s/US5nTxbC2nYc1hWpn5Bozw)\n- [?下载→深入浅出Java多线程](https://mp.weixin.qq.com/s/pxKrjw_5NTdZfHOKCkwn8w)\n- [?下载→GitHub星标115k+的Java教程](https://mp.weixin.qq.com/s/d7Z0QoChNuP9bTwAGh2QCw)\n- [?下载→重学Java设计模式](https://mp.weixin.qq.com/s/PH5AizUAnTz0CuvJclpAKw)\n- [?下载→Java版LeetCode刷题笔记](https://mp.weixin.qq.com/s/FyoOPIMGcaeH0z5RMhxtaQ)\n- [?下载→阮一峰C语言入门教程](docs/download/yuanyifeng-c-language.md)\n- [?下载→BAT大佬的刷题笔记](docs/download/bat-shuati.md)\n- [?下载→给操作系统捋条线](https://mp.weixin.qq.com/s/puTGbgU7xQnRcvz5hxGBHA)\n- [?下载→豆瓣9.1分，Pro Git中文版](docs/download/progit.md)\n- [?下载→简历模板](docs/download/jianli.md)\n\n\n# 知识库搭建历程\n\n> [!NOTE]\n> 从购买阿里云服务器+域名购买+域名备案+HTTP 升级到 HTTPS，全方面记录《Java 程序员进阶之路》知识库的诞生和改进过程，涉及到 docsify、Git、Linux 命令、GitHub 仓库等实用知识点。\n\n- [阿里云服务器购买+宝塔面板安装+域名购买+域名备案+升级HTTPS](docs/szjy/tobebetterjavaer-beian.md)\n- [使用docsify+Git+GitHub+码云+阿里云服务器搭建知识库网站](docs/szjy/tobebetterjavaer-wangzhan-shangxian.md)\n\n\n# 联系作者\n\n> [!NOTE]\n>- 作者是一名普通普通普通普通三连的 Java 后端开发者，热爱学习，热爱分享\n>- 参加工作以后越来越理解交流和分享的重要性，在不停地汲取营养的同时，也希望帮助到更多的小伙伴们\n>- Java 程序员进阶之路，不仅是作者自学 Java 以来所有的原创文章和学习资料的大聚合，更是作者向这个世界传播知识的一个窗口。\n\n## 心路历程\n\n- [走近作者：个人介绍 Q&A](docs/about-the-author/readme.md)\n- [我的第一个，10 万(B站视频播放)](docs/about-the-author/bzhan-10wan.md)\n- [我的第一个，一千万！知乎阅读](docs/about-the-author/zhihu-1000wan.md)\n- [我的第二个，一千万！CSDN阅读](docs/about-the-author/csdn-1000wan.md)\n\n## 联系方式\n\n### 技术交流群\n\n本群的宗旨是给大家提供一个良好的技术学习交流平台，所以杜绝一切广告！<br>由于微信群人满 100 之后无法加入，请先添加作者微信「qing_geee」（也可以扫描下方的二维码），备注：加群。\n\n<div align=\"left\">\n    <img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/qing_geee.png\" width=\"260px\">\n</div>\n\n### 原创公众号\n\n本号的slogan：技术文通俗易懂，吹水文风趣幽默。<br>目前已有 10 万+读者关注，微信搜索「**沉默王二**」（也可以扫描下方的二维码）就可以关注作者了。\n\n<div align=\"left\">\n    <img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongzhonghao.png\" width=\"260px\">\n</div>\n\n关注后，回复关键字「**00**」可以获取更多优质的 Java 学习资料。\n    \n    \n### star趋势图\n\n[![Star History Chart](https://api.star-history.com/svg?repos=itwanger/toBeBetterJavaer&type=Date)](https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-17/63a3b6f2-a4ec-4594-a69d-649e75be7e5c)\n\n\n### 友情链接\n\n- [Hippo4J](https://github.com/acmenlt/dynamic-threadpool)，? 强大的动态线程池，附带监控报警功能（没有依赖中间件），完全遵循阿里巴巴编码规范。\n- [JavaGuide](https://github.com/Snailclimb/JavaGuide)，「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试，首选 JavaGuide！\n\n### 捐赠鼓励\n\n开源不易，如果《Java 程序员进阶之路》对你有些帮助，可以请作者喝杯咖啡，算是对开源做出的一点点鼓励吧！\n\n<div align=\"left\">\n    <img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/weixin-zhifu.png\" width=\"260px\">\n</div>\n\n:gift_heart: 感谢大家对我资金的赞赏，每隔一个月会统计一次。\n\n时间|小伙伴|赞赏金额\n---|---|---\n2022-04-20|w*n|1元\n2022-04-12|*生|10元\n2022-03-04|袁*波|99元\n2022-02-17|*色|1元\n2022-02-17|M*y|1元\n2022-01-28|G*R|6.6元\n2022-01-20|*光|50元\n2022-01-14|*浩|1元\n2022-01-01|马*谊|6.6元\n2022-01-01|刚*好|3.6元\n2021-12-20|t*1|5 元\n2021-10-26|*鱼|28 元\n2021-10-11|*人|28 元\n2021-09-01|S*n|6.6 元\n2021-08-02|*秒|1 元\n2021-06-13|*7| 28 元\n2021-04-29|p*e|2 元\n\n\n\n### 参与贡献\n\n1. 如果你对本项目有任何建议或发现文中内容有误的，欢迎提交 issues 进行指正。\n2. 对于文中我没有涉及到知识点，欢迎提交 PR。\n\n\n\n', 'Java 程序员进阶之路', '学 Java，就上 Java 程序员进阶之路', 'PUBLISHED', null, '2022-05-17 10:15:27', '1', null, '0', '{\"articleCoverUrl\": \"https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-17/c4a12c96-7e71-4b88-8f59-61fbda8f8f36.png\"}', '<p><a href>? 沉默王二-《Java 程序员进阶之路》官方知识星球来啦！！！</a></p>\n<p>如果你需要专属Java学习/面试小册/一对一交流/简历修改/专属求职指南/学习打卡，不妨花 3 分钟左右看看星球的详细介绍：<a href>沉默王二-《Java 程序员进阶之路》详细介绍 </a>（一定要确定自己真的需要再加入，一定要看完详细介绍之后再加我）。</p>\n<p>\n  <a href=\"https://tobebetterjavaer.com\">\n    <img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/logo-01.png\" width=\"260px\" alt=\"Java 程序员进阶之路\">\n  </a>\n</p>\n<p>\n  <a href=\"https://github.com/itwanger/toBeBetterJavaer\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Github-toBeBetterJavaer-red.svg\"></a>\n  <a href=\"https://gitee.com/itwanger/toBeBetterJavaer\" target=\"_blank\"><img src=\"https://img.shields.io/badge/Gitee-toBeBetterJavaer-blue.svg\"></a>\n  <a href=\"https://space.bilibili.com/513340480\" target=\"_blank\"><img src=\"https://img.shields.io/badge/bilibili-哔哩哔哩-critical\"></a>\n  <a href=\"https://mp.weixin.qq.com/s/ExjM-xdqMFFY1NIZffz-Ng\" target=\"_blank\">\n    <img src=\"https://img.shields.io/badge/计算机经典电子书-下载-green.svg\" alt=\"无套路下载\">\n  </a>\n</p>\n<h1><a id=\"_20\"></a>为什么会有这个开源知识库</h1>\n<blockquote>\n<p>[!NOTE]<br />\n知识库取名 <strong>toBeBetterJavaer</strong>，即 <strong>To Be Better Javaer</strong>，意为「成为一名更好的 Java 程序员」，是自学 Java 以来所有原创文章和学习资料的大聚合。内容包括 Java 基础、Java 并发编程、Java 虚拟机、Java 企业级开发、Java 面试等核心知识点。据说每一个优秀的 Java 程序员都喜欢她，风趣幽默、通俗易懂。学 Java，就认准 Java 程序员进阶之路?。</p>\n<p>知识库旨在为学习 Java 的小伙伴提供一系列：</p>\n<ul>\n<li><strong>优质的原创 Java 教程</strong></li>\n<li><strong>全面清晰的 Java 学习路线</strong></li>\n<li><strong>免费但靠谱的 Java 学习资料</strong></li>\n<li><strong>精选的 Java 岗求职面试指南</strong></li>\n<li><strong>Java 企业级开发所需的必备技术</strong></li>\n</ul>\n<p>赠人玫瑰手有余香。知识库会持续保持<strong>更新</strong>，欢迎收藏品鉴！</p>\n<p><strong>转载须知</strong> ：以下所有文章如非文首说明为转载皆为我（沉默王二）的原创，转载在文首注明出处，如发现恶意抄袭/搬运，会动用法律武器维护自己的权益。让我们一起维护一个良好的技术创作环境！</p>\n<p>推荐你通过在线阅读网站进行阅读，体验更好，速度更快！</p>\n<ul>\n<li><a href=\"https://tobebetterjavaer.com/\" target=\"_blank\">Java 程序员进阶之路在线阅读网站（VuePress 版）</a></li>\n<li><a href=\"https://docsify.tobebetterjavaer.com/\" target=\"_blank\">Java 程序员进阶之路在线阅读网站（docsify 版）</a></li>\n</ul>\n<p>建议给本仓库点个 star，满足一下我的虚荣心，内容质量也绝对值得你一个 star。我还在继续创作，给我一点继续更新的动力，笔芯。</p>\n</blockquote>\n<h1><a id=\"_44\"></a>知识库地图</h1>\n<blockquote>\n<p>[!NOTE]<br />\n知识库收录的核心内容就全在这里面了，大类分为 Java 核心、Java 企业级开发、数据库、计算机基础、求职面试、学习资源、程序人生，几乎你需要的这里都有。</p>\n</blockquote>\n<p><img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/tobebetterjavaer-map.png\" alt=\"\" /></p>\n<h1><a id=\"_52\"></a>学习路线</h1>\n<blockquote>\n<p>[!NOTE]<br />\n除了 Java 学习路线，还有 C语言、C++、Python、Go 语言、操作系统、前端、蓝桥杯等硬核学习路线，欢迎收藏品鉴！</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/xuexiluxian/java/yitiaolong.md\" target=\"_blank\">Java学习路线一条龙版（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/java/thread.md\" target=\"_blank\">Java并发编程学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/java/jvm.md\" target=\"_blank\">Java虚拟机学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/c.md\" target=\"_blank\">C语言学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/ccc.md\" target=\"_blank\">C++学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/python.md\" target=\"_blank\">Python学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/go.md\" target=\"_blank\">Go语言学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/os.md\" target=\"_blank\">操作系统学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/qianduan.md\" target=\"_blank\">前端学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/lanqiaobei.md\" target=\"_blank\">蓝桥杯学习路线（建议收藏?）</a></li>\n<li><a href=\"docs/xuexiluxian/algorithm.md\" target=\"_blank\">算法和数据结构学习路线（建议收藏?）</a></li>\n</ul>\n<h1><a id=\"_69\"></a>面渣逆袭</h1>\n<blockquote>\n<p>[!NOTE]<br />\n<strong>面试前必读系列</strong>！包括 Java 基础、Java 集合框架、Java 并发编程、Java 虚拟机、Spring、Redis 等等。</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/sidebar/sanfene/javase.md\" target=\"_blank\">面渣逆袭（Java 基础篇）必看?</a></li>\n<li><a href=\"docs/sidebar/sanfene/collection.md\" target=\"_blank\">面渣逆袭（Java 集合框架篇）必看?</a></li>\n<li><a href=\"docs/sidebar/sanfene/javathread.md\" target=\"_blank\">面渣逆袭（Java 并发编程篇）必看?</a></li>\n<li><a href=\"docs/sidebar/sanfene/jvm.md\" target=\"_blank\">面渣逆袭（Java 虚拟机篇）必看?</a></li>\n<li><a href=\"docs/sidebar/sanfene/spring.md\" target=\"_blank\">面渣逆袭（Spring）必看?</a></li>\n<li><a href=\"docs/sidebar/sanfene/redis.md\" target=\"_blank\">面渣逆袭（Redis）必看?</a></li>\n</ul>\n<h1><a id=\"_81\"></a>学习建议</h1>\n<blockquote>\n<p>[!NOTE]<br />\n<strong>收集了我所有的知乎高赞帖子</strong>！全方位迷茫解惑。</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/xuexijianyi/read-csapp.md\" target=\"_blank\">如何阅读《深入理解计算机系统》这本书？</a></li>\n<li><a href=\"docs/xuexijianyi/electron-information-engineering.md\" target=\"_blank\">电子信息工程最好的出路的是什么？</a></li>\n</ul>\n<h1><a id=\"Java_90\"></a>Java核心</h1>\n<blockquote>\n<p>[!NOTE]<br />\n<strong>Java核心非常重要</strong>！我将其分成了Java 基础篇（包括基础语法、面向对象、集合框架、异常处理、Java IO 等）、Java 并发篇和 Java 虚拟机篇。</p>\n</blockquote>\n<h2><a id=\"Java_96\"></a>Java概述</h2>\n<ul>\n<li><a href=\"docs/overview/what-is-java.md\" target=\"_blank\">什么是Java？Java发展简史，Java的优势</a></li>\n<li><a href=\"docs/overview/hello-world.md\" target=\"_blank\">第一个Java程序：Hello World</a></li>\n</ul>\n<h2><a id=\"Java_102\"></a>Java基础语法</h2>\n<ul>\n<li><a href=\"docs/basic-grammar/basic-data-type.md\" target=\"_blank\">Java支持的8种基本数据类型</a></li>\n<li><a href=\"docs/basic-grammar/flow-control.md\" target=\"_blank\">Java流程控制语句</a></li>\n<li><a href=\"docs/basic-grammar/operator.md\" target=\"_blank\">Java运算符</a></li>\n<li><a href=\"docs/basic-grammar/javadoc.md\" target=\"_blank\">Java注释：单行、多行和文档注释</a></li>\n<li><a href=\"docs/basic-extra-meal/48-keywords.md\" target=\"_blank\">Java中常用的48个关键字</a></li>\n<li><a href=\"docs/basic-extra-meal/java-naming.md\" target=\"_blank\">Java命名规范（非常全面，可以收藏）</a></li>\n</ul>\n<h2><a id=\"Java_111\"></a>Java面向对象编程</h2>\n<ul>\n<li><a href=\"docs/oo/object-class.md\" target=\"_blank\">怎么理解Java中类和对象的概念？</a></li>\n<li><a href=\"docs/oo/var.md\" target=\"_blank\">Java变量的作用域：局部变量、成员变量、静态变量、常量</a></li>\n<li><a href=\"docs/oo/method.md\" target=\"_blank\">Java方法</a></li>\n<li><a href=\"docs/oo/construct.md\" target=\"_blank\">Java构造方法</a></li>\n<li><a href=\"docs/oo/code-init.md\" target=\"_blank\">Java代码初始化块</a></li>\n<li><a href=\"docs/oo/abstract.md\" target=\"_blank\">Java抽象类</a></li>\n<li><a href=\"docs/oo/interface.md\" target=\"_blank\">Java接口</a></li>\n<li><a href=\"docs/oo/static.md\" target=\"_blank\">Java中的static关键字解析</a></li>\n<li><a href=\"docs/oo/this-super.md\" target=\"_blank\">Java中this和super的用法总结</a></li>\n<li><a href=\"docs/oo/final.md\" target=\"_blank\">浅析Java中的final关键字</a></li>\n<li><a href=\"docs/oo/instanceof.md\" target=\"_blank\">Java instanceof关键字用法</a></li>\n<li><a href=\"docs/basic-extra-meal/immutable.md\" target=\"_blank\">深入理解Java中的不可变对象</a></li>\n<li><a href=\"docs/basic-extra-meal/varables.md\" target=\"_blank\">Java中可变参数的使用</a></li>\n<li><a href=\"docs/basic-extra-meal/generic.md\" target=\"_blank\">深入理解Java泛型</a></li>\n<li><a href=\"docs/basic-extra-meal/annotation.md\" target=\"_blank\">深入理解Java注解</a></li>\n<li><a href=\"docs/basic-extra-meal/enum.md\" target=\"_blank\">Java枚举（enum）</a></li>\n<li><a href=\"docs/basic-extra-meal/fanshe.md\" target=\"_blank\">大白话说Java反射：入门、使用、原理</a></li>\n</ul>\n<h2><a id=\"_131\"></a>字符串&数组</h2>\n<ul>\n<li><a href=\"docs/string/immutable.md\" target=\"_blank\">为什么String是不可变的？</a></li>\n<li><a href=\"docs/string/constant-pool.md\" target=\"_blank\">深入了解Java字符串常量池</a></li>\n<li><a href=\"docs/string/intern.md\" target=\"_blank\">深入解析 String#intern</a></li>\n<li><a href=\"docs/string/equals.md\" target=\"_blank\">Java判断两个字符串是否相等？</a></li>\n<li><a href=\"docs/string/join.md\" target=\"_blank\">Java字符串拼接的几种方式</a></li>\n<li><a href=\"docs/string/split.md\" target=\"_blank\">如何在Java中优雅地分割String字符串？</a></li>\n<li><a href=\"docs/array/array.md\" target=\"_blank\">深入理解Java数组</a></li>\n<li><a href=\"docs/array/print.md\" target=\"_blank\">如何优雅地打印Java数组？</a></li>\n</ul>\n<h2><a id=\"_142\"></a>集合框架（容器）</h2>\n<ul>\n<li><a href=\"docs/collection/gailan.md\" target=\"_blank\">Java集合框架</a></li>\n<li><a href=\"docs/collection/arraylist.md\" target=\"_blank\">Java集合ArrayList详解</a></li>\n<li><a href=\"docs/collection/linkedlist.md\" target=\"_blank\">Java集合LinkedList详解</a></li>\n<li><a href=\"docs/collection/list-war-2.md\" target=\"_blank\">Java中ArrayList和LinkedList的区别</a></li>\n<li><a href=\"docs/collection/iterator-iterable.md\" target=\"_blank\">Java中的Iterator和Iterable区别</a></li>\n<li><a href=\"docs/collection/fail-fast.md\" target=\"_blank\">为什么阿里巴巴强制不要在foreach里执行删除操作</a></li>\n<li><a href=\"docs/collection/hashmap.md\" target=\"_blank\">Java8系列之重新认识HashMap</a></li>\n</ul>\n<h2><a id=\"Java_152\"></a>Java输入输出</h2>\n<ul>\n<li><a href=\"docs/io/shangtou.md\" target=\"_blank\">Java IO学习整理</a></li>\n<li><a href=\"docs/io/BIONIOAIO.md\" target=\"_blank\">如何给女朋友解释什么是 BIO、NIO 和 AIO？</a></li>\n</ul>\n<h2><a id=\"_158\"></a>异常处理</h2>\n<ul>\n<li><a href=\"docs/exception/gailan.md\" target=\"_blank\">一文读懂Java异常处理</a></li>\n<li><a href=\"docs/exception/try-with-resouces.md\" target=\"_blank\">详解Java7新增的try-with-resouces语法</a></li>\n<li><a href=\"docs/exception/shijian.md\" target=\"_blank\">Java异常处理的20个最佳实践</a></li>\n<li><a href=\"docs/exception/npe.md\" target=\"_blank\">Java空指针NullPointerException的传说</a></li>\n</ul>\n<h2><a id=\"_165\"></a>常用工具类</h2>\n<ul>\n<li><a href=\"docs/common-tool/arrays.md\" target=\"_blank\">Java Arrays工具类10大常用方法</a></li>\n<li><a href=\"docs/common-tool/collections.md\" target=\"_blank\">Java集合框架：Collections工具类</a></li>\n<li><a href=\"docs/common-tool/hutool.md\" target=\"_blank\">Hutool：国产良心工具包，让你的Java变得更甜</a></li>\n<li><a href=\"docs/common-tool/guava.md\" target=\"_blank\">Google开源的Guava工具库，太强大了～</a></li>\n</ul>\n<h2><a id=\"Java_172\"></a>Java新特性</h2>\n<ul>\n<li><a href=\"docs/java8/stream.md\" target=\"_blank\">Java 8 Stream流详细用法</a></li>\n<li><a href=\"docs/java8/optional.md\" target=\"_blank\">Java 8 Optional最佳指南</a></li>\n<li><a href=\"docs/java8/Lambda.md\" target=\"_blank\">深入浅出Java 8 Lambda表达式</a></li>\n</ul>\n<h2><a id=\"Java_178\"></a>Java重要知识点</h2>\n<ul>\n<li><a href=\"docs/basic-extra-meal/java-unicode.md\" target=\"_blank\">彻底弄懂Java中的Unicode和UTF-8编码</a></li>\n<li><a href=\"docs/basic-extra-meal/int-cache.md\" target=\"_blank\">Java中int、Integer、new Integer之间的区别</a></li>\n<li><a href=\"docs/basic-extra-meal/box.md\" target=\"_blank\">深入剖析Java中的拆箱和装箱</a></li>\n<li><a href=\"docs/basic-extra-meal/deep-copy.md\" target=\"_blank\">彻底讲明白的Java浅拷贝与深拷贝</a></li>\n<li><a href=\"docs/basic-extra-meal/hashcode.md\" target=\"_blank\">深入理解Java中的hashCode方法</a></li>\n<li><a href=\"docs/basic-extra-meal/equals-hashcode.md\" target=\"_blank\">一次性搞清楚equals和hashCode</a></li>\n<li><a href=\"docs/basic-extra-meal/override-overload.md\" target=\"_blank\">Java重写(Override)与重载(Overload)</a></li>\n<li><a href=\"docs/basic-extra-meal/Overriding.md\" target=\"_blank\">Java重写（Overriding）时应当遵守的11条规则</a></li>\n<li><a href=\"docs/basic-extra-meal/pass-by-value.md\" target=\"_blank\">Java到底是值传递还是引用传递？</a></li>\n<li><a href=\"docs/basic-extra-meal/true-generic.md\" target=\"_blank\">Java不能实现真正泛型的原因是什么？</a></li>\n<li><a href=\"docs/basic-extra-meal/comparable-omparator.md\" target=\"_blank\">详解Java中Comparable和Comparator的区别</a></li>\n<li><a href=\"docs/basic-extra-meal/jdk9-char-byte-string.md\" target=\"_blank\">jdk9为何要将String的底层实现由char[]改成了byte[]?</a></li>\n<li><a href=\"docs/basic-extra-meal/jdk-while-for-wuxian-xunhuan.md\" target=\"_blank\">为什么JDK源码中，无限循环大多使用for(;;)而不是while(true)?</a></li>\n<li><a href=\"docs/basic-extra-meal/class-object.md\" target=\"_blank\">先有Class还是先有Object？</a></li>\n<li><a href=\"docs/basic-extra-meal/instanceof-jvm.md\" target=\"_blank\">instanceof关键字是如何实现的？</a></li>\n</ul>\n<h2><a id=\"Java_197\"></a>Java并发编程</h2>\n<ul>\n<li><a href=\"docs/thread/wangzhe-thread.md\" target=\"_blank\">室友打了一把王者就学会了创建Java线程的3种方式</a></li>\n<li><a href=\"docs/thread/thread-state-and-method.md\" target=\"_blank\">Java线程的6种状态及切换(透彻讲解)</a></li>\n<li><a href=\"docs/thread/thread-group-and-thread-priority.md\" target=\"_blank\">线程组是什么？线程优先级如何设置？</a></li>\n<li><a href=\"docs/thread/why-need-thread.md\" target=\"_blank\">进程与线程的区别是什么？</a></li>\n<li><a href=\"docs/thread/thread-bring-some-problem.md\" target=\"_blank\">并发编程带来了哪些问题？</a></li>\n<li><a href=\"docs/thread/jmm.md\" target=\"_blank\">全面理解Java的内存模型（JMM）</a></li>\n<li><a href=\"docs/thread/volatile.md\" target=\"_blank\">Java并发编程volatile关键字解析</a></li>\n<li><a href=\"docs/thread/synchronized.md\" target=\"_blank\">Java中的synchronized关键字锁的到底是什么？</a></li>\n<li><a href=\"docs/thread/cas.md\" target=\"_blank\">Java实现CAS的原理</a></li>\n<li><a href=\"docs/thread/aqs.md\" target=\"_blank\">Java并发AQS详解</a></li>\n<li><a href=\"docs/thread/lock.md\" target=\"_blank\">大致了解下Java的锁接口和锁</a></li>\n<li><a href=\"docs/thread/reentrantLock.md\" target=\"_blank\">深入理解Java并发重入锁ReentrantLock</a></li>\n<li><a href=\"docs/thread/ReentrantReadWriteLock.md\" target=\"_blank\">深入理解Java并发读写锁ReentrantReadWriteLock</a></li>\n<li><a href=\"docs/thread/condition.md\" target=\"_blank\">深入理解Java并发线程协作类Condition</a></li>\n<li><a href=\"docs/thread/LockSupport.md\" target=\"_blank\">深入理解Java并发线程线程阻塞唤醒类LockSupport</a></li>\n<li><a href=\"docs/thread/map.md\" target=\"_blank\">简单聊聊Java的并发集合容器</a></li>\n<li><a href=\"docs/thread/ConcurrentHashMap.md\" target=\"_blank\">吊打Java并发面试官之ConcurrentHashMap</a></li>\n<li><a href=\"docs/thread/ConcurrentLinkedQueue.md\" target=\"_blank\">吊打Java并发面试官之ConcurrentLinkedQueue</a></li>\n<li><a href=\"docs/thread/CopyOnWriteArrayList.md\" target=\"_blank\">吊打Java并发面试官之CopyOnWriteArrayList</a></li>\n<li><a href=\"docs/thread/ThreadLocal.md\" target=\"_blank\">吊打Java并发面试官之ThreadLocal</a></li>\n<li><a href=\"docs/thread/BlockingQueue.md\" target=\"_blank\">吊打Java并发面试官之BlockingQueue</a></li>\n<li><a href=\"docs/thread/pool.md\" target=\"_blank\">面试必备：Java线程池解析</a></li>\n<li><a href=\"docs/thread/ali-executors.md\" target=\"_blank\">为什么阿里巴巴要禁用Executors创建线程池？</a></li>\n<li><a href=\"docs/thread/ScheduledThreadPoolExecutor.md\" target=\"_blank\">深入剖析Java计划任务ScheduledThreadPoolExecutor</a></li>\n<li><a href=\"docs/thread/atomic.md\" target=\"_blank\">Java atomic包中的原子操作类总结</a></li>\n<li><a href=\"docs/thread/CountDownLatch.md\" target=\"_blank\">Java并发编程通信工具类CountDownLatch等一网打尽</a></li>\n<li><a href=\"docs/thread/fork-join.md\" target=\"_blank\">深入理解Java并发编程之Fork/Join框架</a></li>\n<li><a href=\"docs/thread/shengchanzhe-xiaofeizhe.md\" target=\"_blank\">从根上理解生产者-消费者模式</a></li>\n</ul>\n<h2><a id=\"Java_229\"></a>Java虚拟机</h2>\n<ul>\n<li><a href=\"docs/jvm/what-is-jvm.md\" target=\"_blank\">JVM到底是什么？</a></li>\n<li><a href=\"docs/jvm/how-run-java-code.md\" target=\"_blank\">JVM到底是如何运行Java代码的？</a></li>\n<li><a href=\"docs/jvm/class-load.md\" target=\"_blank\">我竟然不再抗拒Java的类加载机制了</a></li>\n<li><a href=\"docs/jvm/class-file-jiegou.md\" target=\"_blank\">详解Java的类文件（class文件）结构</a></li>\n<li><a href=\"docs/jvm/bytecode.md\" target=\"_blank\">从javap的角度轻松看懂字节码</a></li>\n<li><a href=\"docs/jvm/zijiema-zhiling.md\" target=\"_blank\">JVM字节码指令详解</a></li>\n<li><a href=\"docs/jvm/how-jvm-run-zijiema-zhiling.md\" target=\"_blank\">虚拟机是如何执行字节码指令的？</a></li>\n<li><a href=\"docs/jvm/hsdb.md\" target=\"_blank\">HSDB（Hotspot Debugger）从入门到实战</a></li>\n<li><a href=\"docs/jvm/asm.md\" target=\"_blank\">史上最通俗易懂的ASM教程</a></li>\n<li><a href=\"docs/jvm/compile-jdk.md\" target=\"_blank\">自己编译JDK</a></li>\n<li><a href=\"docs/jvm/neicun-jiegou.md\" target=\"_blank\">深入理解JVM的内存结构</a></li>\n<li><a href=\"docs/jvm/whereis-the-object.md\" target=\"_blank\">Java 创建的对象到底放在哪？</a></li>\n<li><a href=\"docs/jvm/gc.md\" target=\"_blank\">咱们从头到尾说一次Java垃圾回收</a></li>\n<li><a href=\"docs/jvm/tujie-gc.md\" target=\"_blank\">图解Java的垃圾回收机制</a></li>\n<li><a href=\"docs/jvm/problem-tools.md\" target=\"_blank\">Java问题诊断和排查工具（查看JVM参数、内存使用情况及分析）</a></li>\n<li><a href=\"docs/jvm/jit.md\" target=\"_blank\">Java即时编译（JIT）器原理解析及实践</a></li>\n<li><a href=\"docs/jvm/oom.md\" target=\"_blank\">一次内存溢出排查优化实战</a></li>\n<li><a href=\"docs/jvm/cpu-percent-100.md\" target=\"_blank\">一次生产CPU 100% 排查优化实践</a></li>\n<li><a href=\"docs/jvm/zongjie.md\" target=\"_blank\">JVM 核心知识点总结</a></li>\n</ul>\n<h1><a id=\"Java_252\"></a>Java企业级开发</h1>\n<blockquote>\n<p>[!NOTE]</p>\n<ul>\n<li><strong>到底能不能成为一名合格的 Java 程序员，从理论走向实战？Java 企业级开发这部分内容就是一个分水岭</strong>！</li>\n<li>纸上得来终觉浅，须知此事要躬行。</li>\n</ul>\n</blockquote>\n<h2><a id=\"_258\"></a>开发工具</h2>\n<ul>\n<li><a href=\"docs/maven/maven.md\" target=\"_blank\">终于把项目构建神器Maven捋清楚了~</a></li>\n<li><a href=\"docs/git/git-qiyuan.md\" target=\"_blank\">我在工作中是如何使用Git的</a></li>\n<li><a href=\"docs/nginx/nginx.md\" target=\"_blank\">5分钟带你深入浅出搞懂Nginx</a></li>\n</ul>\n<h2><a id=\"IDE_264\"></a>IDE/编辑器</h2>\n<ul>\n<li><a href=\"docs/ide/4-debug-skill.md\" target=\"_blank\">4个高级的IntelliJ IDEA调试技巧</a></li>\n</ul>\n<h2><a id=\"Spring_268\"></a>Spring</h2>\n<ul>\n<li><a href=\"docs/springboot/aop-log.md\" target=\"_blank\">Spring AOP扫盲</a></li>\n<li><a href=\"docs/springboot/ioc.md\" target=\"_blank\">Spring IoC扫盲</a></li>\n</ul>\n<h2><a id=\"SpringBoot_274\"></a>SpringBoot</h2>\n<ul>\n<li><a href=\"docs/springboot/initializr.md\" target=\"_blank\">一分钟快速搭建Spring Boot项目</a></li>\n<li><a href=\"docs/springboot/mysql-druid.md\" target=\"_blank\">Spring Boot 整合 MySQL 和 Druid</a></li>\n<li><a href=\"docs/springboot/jpa.md\" target=\"_blank\">Spring Boot 整合 JPA</a></li>\n<li><a href=\"docs/redis/redis-springboot.md\" target=\"_blank\">Spring Boot 整合 Redis 实现缓存</a></li>\n<li><a href=\"docs/kaiyuan/auto-generator.md\" target=\"_blank\">Spring Boot 整合 MyBatis-Plus AutoGenerator生成项目骨架代码</a></li>\n<li><a href=\"docs/springboot/tomcat.md\" target=\"_blank\">Spring Boot 为什么不需要额外安装Tomcat？</a></li>\n</ul>\n<h2><a id=\"_283\"></a>辅助工具/轮子</h2>\n<ul>\n<li><a href=\"docs/gongju/tabby.md\" target=\"_blank\">Tabby：一款逼格更高的开源终端工具</a></li>\n<li><a href=\"docs/gongju/warp.md\" target=\"_blank\">Warp：一款21世纪人用的终端工具</a></li>\n<li><a href=\"docs/gongju/Chocolatey-Homebrew.md\" target=\"_blank\">Chocolatey Homebrew：两款惊艳的Shell软件管理器</a></li>\n<li><a href=\"docs/gongju/chiner.md\" target=\"_blank\">chiner：一款开源的数据库设计神器</a></li>\n<li><a href=\"docs/gongju/DBeaver.md\" target=\"_blank\">DBeaver：一款免费的数据库操作工具</a></li>\n<li><a href=\"docs/gongju/knife4j.md\" target=\"_blank\">knife4j：一款界面更炫酷的API文档生成神器</a></li>\n<li><a href=\"docs/gongju/junit.md\" target=\"_blank\">Junit：一个开源的Java单元测试框架</a></li>\n<li><a href=\"docs/gongju/fastjson.md\" target=\"_blank\">fastjson：阿里巴巴开源的JSON解析库</a></li>\n<li><a href=\"docs/gongju/gson.md\" target=\"_blank\">Gson：Google开源的JSON解析库</a></li>\n<li><a href=\"docs/gongju/jackson.md\" target=\"_blank\">Jackson：GitHub上star数最多的JSON解析库</a></li>\n<li><a href=\"docs/gongju/forest.md\" target=\"_blank\">Forest：一款极简的声明式HTTP调用API框架</a></li>\n<li><a href=\"docs/gongju/log4j.md\" target=\"_blank\">Log4j：Log4j 2的前身，Java日志框架的鼻祖</a></li>\n<li><a href=\"docs/gongju/log4j2.md\" target=\"_blank\">Log4j 2：Apache维护的一款高性能日志记录工具</a></li>\n<li><a href=\"docs/gongju/logback.md\" target=\"_blank\">Logback：Spring Boot内置的日志处理框架</a></li>\n<li><a href=\"docs/gongju/slf4j.md\" target=\"_blank\">SLF4J：阿里巴巴强制使用的日志门面担当</a></li>\n<li><a href=\"docs/gongju/others.md\" target=\"_blank\">其他辅助工具/轮子</a></li>\n</ul>\n<h2><a id=\"_303\"></a>安全篇</h2>\n<h2><a id=\"_305\"></a>分布式</h2>\n<ul>\n<li><a href=\"docs/elasticsearch/rumen.md\" target=\"_blank\">全文搜索引擎Elasticsearch入门教程</a></li>\n<li><a href=\"docs/zookeeper/jibenjieshao.md\" target=\"_blank\">可能是把ZooKeeper概念讲的最清楚的一篇文章</a></li>\n</ul>\n<h2><a id=\"_310\"></a>高性能</h2>\n<h3><a id=\"_312\"></a>消息队列</h3>\n<ul>\n<li><a href=\"docs/mq/rabbitmq-rumen.md\" target=\"_blank\">RabbitMQ入门教程（概念、应用场景、安装、使用）</a></li>\n<li><a href=\"docs/mq/100-budiushi.md\" target=\"_blank\">MQ：怎么确保消息100%不丢失？</a></li>\n</ul>\n<h2><a id=\"_317\"></a>高可用</h2>\n<h1><a id=\"_319\"></a>数据库</h1>\n<blockquote>\n<p>[!NOTE]</p>\n<ul>\n<li><strong>简而言之，就是按照数据结构来组织、存储和管理数据的仓库</strong>。几乎所有的 Java 后端开发都要学习数据库这块的知识，包括关系型数据库 MySQL，缓存中间件 Redis，非关系型数据库 MongoDB 等。</li>\n</ul>\n</blockquote>\n<h2><a id=\"MySQL_324\"></a>MySQL</h2>\n<h2><a id=\"Redis_326\"></a>Redis</h2>\n<ul>\n<li><a href=\"docs/redis/rumen.md\" target=\"_blank\">Redis入门(适合新手)</a></li>\n<li><a href=\"docs/redis/xuebeng-chuantou-jichuan.md\" target=\"_blank\">简单聊聊缓存雪崩、穿透、击穿</a></li>\n</ul>\n<h2><a id=\"MongoDB_333\"></a>MongoDB</h2>\n<ul>\n<li><a href=\"docs/mongodb/rumen.md\" target=\"_blank\">MongoDB最基础入门教程</a></li>\n</ul>\n<h1><a id=\"_338\"></a>计算机基础</h1>\n<blockquote>\n<p>[!NOTE]</p>\n<ul>\n<li><strong>计算机基础包括操作系统、计算机网络、计算机组成原理、数据结构与算法等</strong>。对于任何一名想要走得更远的 Java 后端开发来说，都是必须要花时间和精力去夯实的。</li>\n<li>万丈高露平地起，勿在浮沙筑高台。</li>\n</ul>\n</blockquote>\n<ul>\n<li><a href=\"docs/cs/os.md\" target=\"_blank\">计算机操作系统知识点大梳理</a></li>\n<li><a href=\"docs/cs/wangluo.md\" target=\"_blank\">计算机网络核心知识点大梳理</a></li>\n</ul>\n<h1><a id=\"_348\"></a>求职面试</h1>\n<blockquote>\n<p>[!NOTE]</p>\n<ul>\n<li><strong>学习了那么多 Java 知识，耗费了无数的脑细胞，熬掉了无数根秀发，为的是什么？当然是谋取一份心仪的 offer 了</strong>。那八股文、面试题、城市选择、优质面经又怎能少得了呢？</li>\n<li>千淘万漉虽辛苦，吹尽狂沙始到金。</li>\n</ul>\n</blockquote>\n<h2><a id=\"_354\"></a>面试题集合</h2>\n<ul>\n<li><a href=\"docs/baguwen/java-basic-34.md\" target=\"_blank\">Java：34道精选高频面试题</a></li>\n<li><a href=\"docs/collection/hashmap-interview.md\" target=\"_blank\">Java：13道HashMap精选面试题</a></li>\n<li><a href=\"docs/mianjing/redis12question.md\" target=\"_blank\">Redis：12道精选高频面试题）</a></li>\n<li><a href=\"docs/nginx/40-interview.md\" target=\"_blank\">Nginx：40道精选面试题</a></li>\n</ul>\n<h2><a id=\"_362\"></a>背诵版八股文</h2>\n<ul>\n<li><a href=\"docs/baguwen/java-basic.md\" target=\"_blank\">Java 基础八股文（背诵版）必看?</a></li>\n<li><a href=\"docs/baguwen/java-thread.md\" target=\"_blank\">Java 并发编程八股文（背诵版）必看?</a></li>\n<li><a href=\"docs/baguwen/jvm.md\" target=\"_blank\">Java 虚拟机八股文（背诵版）必看?</a></li>\n<li><a href=\"docs/sidebar/herongwei/mysql.md\" target=\"_blank\">MySQL 八股文（背诵版）必看?</a></li>\n</ul>\n<h2><a id=\"_370\"></a>优质面经</h2>\n<ul>\n<li><a href=\"docs/mianjing/shanganaliyun.md\" target=\"_blank\">春招斩获深圳腾讯PCG和杭州阿里云</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/h2tV6v5Rh6jHdO9x0p63-g\" target=\"_blank\">社招拿下阿里美团头条京东滴滴)</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/0hCJy0m8nHm08HfyXKQT1A\" target=\"_blank\">字节小姐姐的一份秋招攻略</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/6TYEDM73N68vKXpmLRKhHA\" target=\"_blank\">面试常见词汇扫盲+常见大厂面试特点分享</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/vnMZY9Gsy3o1FwMi4f1GlA\" target=\"_blank\">双非学历的社畜，历经 6 轮面试，最终拿下阿里Offer</a></li>\n</ul>\n<h2><a id=\"_378\"></a>面试准备</h2>\n<ul>\n<li><a href=\"https://mp.weixin.qq.com/s/qurUqeD_VyiJRtB38vOuSw\" target=\"_blank\">简历如何优化，简历如何投递，面试如何准备？</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/rO7cU4NX74CoWADo_O4IUw\" target=\"_blank\">校招时间节点、简历编写、笔试、、HR面、实习等注意事项</a></li>\n</ul>\n<h2><a id=\"_383\"></a>城市选择</h2>\n<ul>\n<li><a href=\"docs/cityselect/beijing.md\" target=\"_blank\">北京都有哪些牛逼的互联网公司？</a></li>\n<li><a href=\"docs/cityselect/guangzhou.md\" target=\"_blank\">想去广州了！</a></li>\n<li><a href=\"docs/cityselect/shenzhen.md\" target=\"_blank\">深圳有哪些牛批的互联网公司？</a></li>\n<li><a href=\"docs/cityselect/xian.md\" target=\"_blank\">西安有哪些不错的互联网公司？</a></li>\n<li><a href=\"docs/cityselect/qingdao.md\" target=\"_blank\">青岛有牛逼的互联网公司吗？</a></li>\n<li><a href=\"docs/cityselect/zhengzhou.md\" target=\"_blank\">郑州有哪些不错的互联网公司？</a></li>\n<li><a href=\"docs/cityselect/suzhou.md\" target=\"_blank\">想搬去苏州生活了。</a></li>\n<li><a href=\"docs/cityselect/nanjing.md\" target=\"_blank\">南京有哪些靠谱的互联网公司？</a></li>\n<li><a href=\"docs/cityselect/hangzhou.md\" target=\"_blank\">杭州有哪些顶级的互联网公司？</a></li>\n<li><a href=\"docs/cityselect/chengdu.md\" target=\"_blank\">成都有哪些牛批的互联网公司？</a></li>\n</ul>\n<h2><a id=\"_396\"></a>工作体会</h2>\n<h1><a id=\"_400\"></a>学习资源</h1>\n<blockquote>\n<p>[!NOTE]</p>\n<ul>\n<li><strong>不知道学什么？不知道该怎么学？找不到优质的学习资源</strong>？这些问题在这里统统都可以找到答案。</li>\n<li>我会把自己十多年的编程经验和学习资源毫不保留的分享出来。</li>\n</ul>\n</blockquote>\n<h2><a id=\"PDF_406\"></a>PDF下载</h2>\n<ul>\n<li><a href=\"docs/download/java.md\" target=\"_blank\">?下载→Java程序员常读书单</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/US5nTxbC2nYc1hWpn5Bozw\" target=\"_blank\">?下载→最全最硬核的Java面试 “备战” 资料</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/pxKrjw_5NTdZfHOKCkwn8w\" target=\"_blank\">?下载→深入浅出Java多线程</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/d7Z0QoChNuP9bTwAGh2QCw\" target=\"_blank\">?下载→GitHub星标115k+的Java教程</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/PH5AizUAnTz0CuvJclpAKw\" target=\"_blank\">?下载→重学Java设计模式</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/FyoOPIMGcaeH0z5RMhxtaQ\" target=\"_blank\">?下载→Java版LeetCode刷题笔记</a></li>\n<li><a href=\"docs/download/yuanyifeng-c-language.md\" target=\"_blank\">?下载→阮一峰C语言入门教程</a></li>\n<li><a href=\"docs/download/bat-shuati.md\" target=\"_blank\">?下载→BAT大佬的刷题笔记</a></li>\n<li><a href=\"https://mp.weixin.qq.com/s/puTGbgU7xQnRcvz5hxGBHA\" target=\"_blank\">?下载→给操作系统捋条线</a></li>\n<li><a href=\"docs/download/progit.md\" target=\"_blank\">?下载→豆瓣9.1分，Pro Git中文版</a></li>\n<li><a href=\"docs/download/jianli.md\" target=\"_blank\">?下载→简历模板</a></li>\n</ul>\n<h1><a id=\"_421\"></a>知识库搭建历程</h1>\n<blockquote>\n<p>[!NOTE]<br />\n从购买阿里云服务器+域名购买+域名备案+HTTP 升级到 HTTPS，全方面记录《Java 程序员进阶之路》知识库的诞生和改进过程，涉及到 docsify、Git、Linux 命令、GitHub 仓库等实用知识点。</p>\n</blockquote>\n<ul>\n<li><a href=\"docs/szjy/tobebetterjavaer-beian.md\" target=\"_blank\">阿里云服务器购买+宝塔面板安装+域名购买+域名备案+升级HTTPS</a></li>\n<li><a href=\"docs/szjy/tobebetterjavaer-wangzhan-shangxian.md\" target=\"_blank\">使用docsify+Git+GitHub+码云+阿里云服务器搭建知识库网站</a></li>\n</ul>\n<h1><a id=\"_430\"></a>联系作者</h1>\n<blockquote>\n<p>[!NOTE]</p>\n<ul>\n<li>作者是一名普通普通普通普通三连的 Java 后端开发者，热爱学习，热爱分享</li>\n<li>参加工作以后越来越理解交流和分享的重要性，在不停地汲取营养的同时，也希望帮助到更多的小伙伴们</li>\n<li>Java 程序员进阶之路，不仅是作者自学 Java 以来所有的原创文章和学习资料的大聚合，更是作者向这个世界传播知识的一个窗口。</li>\n</ul>\n</blockquote>\n<h2><a id=\"_437\"></a>心路历程</h2>\n<ul>\n<li><a href=\"docs/about-the-author/readme.md\" target=\"_blank\">走近作者：个人介绍 Q&A</a></li>\n<li><a href=\"docs/about-the-author/bzhan-10wan.md\" target=\"_blank\">我的第一个，10 万(B站视频播放)</a></li>\n<li><a href=\"docs/about-the-author/zhihu-1000wan.md\" target=\"_blank\">我的第一个，一千万！知乎阅读</a></li>\n<li><a href=\"docs/about-the-author/csdn-1000wan.md\" target=\"_blank\">我的第二个，一千万！CSDN阅读</a></li>\n</ul>\n<h2><a id=\"_444\"></a>联系方式</h2>\n<h3><a id=\"_446\"></a>技术交流群</h3>\n<p>本群的宗旨是给大家提供一个良好的技术学习交流平台，所以杜绝一切广告！<br>由于微信群人满 100 之后无法加入，请先添加作者微信「qing_geee」（也可以扫描下方的二维码），备注：加群。</p>\n<div>\n    <img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/qing_geee.png\" width=\"260px\">\n</div>\n<h3><a id=\"_454\"></a>原创公众号</h3>\n<p>本号的slogan：技术文通俗易懂，吹水文风趣幽默。<br>目前已有 10 万+读者关注，微信搜索「<strong>沉默王二</strong>」（也可以扫描下方的二维码）就可以关注作者了。</p>\n<div>\n    <img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongzhonghao.png\" width=\"260px\">\n</div>\n<p>关注后，回复关键字「<strong>00</strong>」可以获取更多优质的 Java 学习资料。</p>\n<h3><a id=\"star_465\"></a>star趋势图</h3>\n<p><a href=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-17/63a3b6f2-a4ec-4594-a69d-649e75be7e5c\" target=\"_blank\"><img src=\"https://api.star-history.com/svg?repos=itwanger/toBeBetterJavaer&type=Date\" alt=\"Star History Chart\" /></a></p>\n<h3><a id=\"_470\"></a>友情链接</h3>\n<ul>\n<li><a href=\"https://github.com/acmenlt/dynamic-threadpool\" target=\"_blank\">Hippo4J</a>，? 强大的动态线程池，附带监控报警功能（没有依赖中间件），完全遵循阿里巴巴编码规范。</li>\n<li><a href=\"https://github.com/Snailclimb/JavaGuide\" target=\"_blank\">JavaGuide</a>，「Java学习+面试指南」一份涵盖大部分 Java 程序员所需要掌握的核心知识。准备 Java 面试，首选 JavaGuide！</li>\n</ul>\n<h3><a id=\"_475\"></a>捐赠鼓励</h3>\n<p>开源不易，如果《Java 程序员进阶之路》对你有些帮助，可以请作者喝杯咖啡，算是对开源做出的一点点鼓励吧！</p>\n<div>\n    <img src=\"http://cdn.tobebetterjavaer.com/tobebetterjavaer/images/weixin-zhifu.png\" width=\"260px\">\n</div>\n<p>? 感谢大家对我资金的赞赏，每隔一个月会统计一次。</p>\n<table>\n<thead>\n<tr>\n<th>时间</th>\n<th>小伙伴</th>\n<th>赞赏金额</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>2022-04-20</td>\n<td>w*n</td>\n<td>1元</td>\n</tr>\n<tr>\n<td>2022-04-12</td>\n<td>*生</td>\n<td>10元</td>\n</tr>\n<tr>\n<td>2022-03-04</td>\n<td>袁*波</td>\n<td>99元</td>\n</tr>\n<tr>\n<td>2022-02-17</td>\n<td>*色</td>\n<td>1元</td>\n</tr>\n<tr>\n<td>2022-02-17</td>\n<td>M*y</td>\n<td>1元</td>\n</tr>\n<tr>\n<td>2022-01-28</td>\n<td>G*R</td>\n<td>6.6元</td>\n</tr>\n<tr>\n<td>2022-01-20</td>\n<td>*光</td>\n<td>50元</td>\n</tr>\n<tr>\n<td>2022-01-14</td>\n<td>*浩</td>\n<td>1元</td>\n</tr>\n<tr>\n<td>2022-01-01</td>\n<td>马*谊</td>\n<td>6.6元</td>\n</tr>\n<tr>\n<td>2022-01-01</td>\n<td>刚*好</td>\n<td>3.6元</td>\n</tr>\n<tr>\n<td>2021-12-20</td>\n<td>t*1</td>\n<td>5 元</td>\n</tr>\n<tr>\n<td>2021-10-26</td>\n<td>*鱼</td>\n<td>28 元</td>\n</tr>\n<tr>\n<td>2021-10-11</td>\n<td>*人</td>\n<td>28 元</td>\n</tr>\n<tr>\n<td>2021-09-01</td>\n<td>S*n</td>\n<td>6.6 元</td>\n</tr>\n<tr>\n<td>2021-08-02</td>\n<td>*秒</td>\n<td>1 元</td>\n</tr>\n<tr>\n<td>2021-06-13</td>\n<td>*7</td>\n<td>28 元</td>\n</tr>\n<tr>\n<td>2021-04-29</td>\n<td>p*e</td>\n<td>2 元</td>\n</tr>\n</tbody>\n</table>\n<h3><a id=\"_507\"></a>参与贡献</h3>\n<ol>\n<li>如果你对本项目有任何建议或发现文中内容有误的，欢迎提交 issues 进行指正。</li>\n<li>对于文中我没有涉及到知识点，欢迎提交 PR。</li>\n</ol>\n', null), ('67', '5', null, '# 这是个文章标题\r\n\r\n这是个测试文档\r\n\r\n​		这里是正文：![img](https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-16/da18e313-0368-4b0a-b1a9-1039d377a7f6.jpg)\r\n\r\n上海普陀区的光新大楼小区，从三月底开始进入封闭管理状态，到现在已经持续了一个多月。整个小区共有居民4000人左右，每天的生活必需品需求量很大，其中300多人有日常用药的需求，他们中90%都是老人。如何确保他们及时拿到需要的药品，是社区一直在操心的事。\r\n\r\n　　为了解决居民用药问题，社区紧急招募志愿者，成立了配药小队，专门为这些居民服务。\r\n\r\n志愿者们每天都在医院和社区各楼层之间奔忙，非常辛苦。在操作中他们发现，每天的信息收集整理工作耗费了大量时间。如果能够更加高效地整合信息，就能够节省时间，让居民及时地拿到药品。\r\n\r\n　　29岁的郑健玮是一家互联网企业的产品设计师，也是小区内的老住户，小区封闭后，他一直活跃在各个微信群和志愿团队中。看到配药团队遇到的问题，他就开始思考如何利用自己的专业知识，让这个工作更加高效。经过不断尝试，他用石墨文档设计制作了一份在线表格，让住户们把所有用药信息在线填写，然后利用文档的后台功能将信息自动分类。\r\n\r\n　　光新大楼小区居民郑健玮说：“收集完之后，它可以生成一张多余表格，这个表格就可以根据不同的数据维度去进行分类，哪栋楼的，其次是用药的紧急程度，还有就是我们要去哪些医院配，再根据医院不同，去划分这个数据维度。”\r\n\r\n　　由于有用药需求的居民以老人为主，考虑到他们对于网络工具可能出现的操作障碍，志愿者们还想到了很多贴心的方法。\r\n\r\n![img](https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-16/f3237ad3-4b3c-4243-80b1-0fc406c0ef02.jpg)\r\n\r\n郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”\r\n\r\n　　有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。\r\n\r\n　　通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。\r\n\r\n　　郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。\r\n\r\n　　郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”', '测试文件1导入', '这是个文章标题 这是个测试文档 ​ 这里是正文： 上海普陀区的光新大楼小区，从三月底开始进入封闭管理状态，到现在已经持续了一个多月。整个小区共有居民4000人左右，每天的生活必需品需求量很大，其...', 'PUBLISHED', null, '2022-05-16 00:17:57', '0', null, '0', '{\"articleCoverUrl\": \"\"}', '<h1><a id=\"_0\"></a>这是个文章标题</h1>\n<p>这是个测试文档</p>\n<p>​		这里是正文：<img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-16/da18e313-0368-4b0a-b1a9-1039d377a7f6.jpg\" alt=\"img\" /></p>\n<p>上海普陀区的光新大楼小区，从三月底开始进入封闭管理状态，到现在已经持续了一个多月。整个小区共有居民4000人左右，每天的生活必需品需求量很大，其中300多人有日常用药的需求，他们中90%都是老人。如何确保他们及时拿到需要的药品，是社区一直在操心的事。</p>\n<p>为了解决居民用药问题，社区紧急招募志愿者，成立了配药小队，专门为这些居民服务。</p>\n<p>志愿者们每天都在医院和社区各楼层之间奔忙，非常辛苦。在操作中他们发现，每天的信息收集整理工作耗费了大量时间。如果能够更加高效地整合信息，就能够节省时间，让居民及时地拿到药品。</p>\n<p>29岁的郑健玮是一家互联网企业的产品设计师，也是小区内的老住户，小区封闭后，他一直活跃在各个微信群和志愿团队中。看到配药团队遇到的问题，他就开始思考如何利用自己的专业知识，让这个工作更加高效。经过不断尝试，他用石墨文档设计制作了一份在线表格，让住户们把所有用药信息在线填写，然后利用文档的后台功能将信息自动分类。</p>\n<p>光新大楼小区居民郑健玮说：“收集完之后，它可以生成一张多余表格，这个表格就可以根据不同的数据维度去进行分类，哪栋楼的，其次是用药的紧急程度，还有就是我们要去哪些医院配，再根据医院不同，去划分这个数据维度。”</p>\n<p>由于有用药需求的居民以老人为主，考虑到他们对于网络工具可能出现的操作障碍，志愿者们还想到了很多贴心的方法。</p>\n<p><img src=\"https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-16/f3237ad3-4b3c-4243-80b1-0fc406c0ef02.jpg\" alt=\"img\" /></p>\n<p>郑健玮说：“如果本人完成不了，可以要求他们的子女或亲属来代为填写，剩下的我们可能需要用一些录屏的方式去指导他们，再不行就是上门指导，由每栋楼的志愿者上门服务。”</p>\n<p>有了这个智能化表格，收集和整理信息的速度明显加快。居民们提交信息后，将自己的病例和医保卡挂在门外，由每栋楼的志愿者上门来取，再由配送小队去医院取药，进行配送。</p>\n<p>通过这样一套流程，光新大楼小区从最初每天只能满足十几户居民的用药需求，提高到现在每天为80户居民配药。</p>\n<p>郑健玮现在经常会忙碌到深夜，他笑称感觉自己比上班时更忙了，但是能为大家解决非常重要的用药问题，他觉得很值得。这段时间大家的互帮互助，也让邻里关系前所未有的温暖。</p>\n<p>郑健玮说：“通过这次事情，我可以明显感受到个人的力量是渺小的，但是无数个个人的力量，就可以让事情往更好的方向去发展。”</p>\n', null);
COMMIT;

-- ----------------------------
--  Table structure for `qrtz_blob_triggers`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_blob_triggers`;
CREATE TABLE `qrtz_blob_triggers` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `BLOB_DATA` blob,
  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
  KEY `SCHED_NAME` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
  CONSTRAINT `qrtz_blob_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_calendars`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_calendars`;
CREATE TABLE `qrtz_calendars` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `CALENDAR_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `CALENDAR` blob NOT NULL,
  PRIMARY KEY (`SCHED_NAME`,`CALENDAR_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_cron_triggers`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_cron_triggers`;
CREATE TABLE `qrtz_cron_triggers` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `CRON_EXPRESSION` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `TIME_ZONE_ID` varchar(80) COLLATE utf8mb4_general_ci DEFAULT NULL,
  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
  CONSTRAINT `qrtz_cron_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_fired_triggers`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_fired_triggers`;
CREATE TABLE `qrtz_fired_triggers` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `ENTRY_ID` varchar(95) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `INSTANCE_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `FIRED_TIME` bigint NOT NULL,
  `SCHED_TIME` bigint NOT NULL,
  `PRIORITY` int NOT NULL,
  `STATE` varchar(16) COLLATE utf8mb4_general_ci NOT NULL,
  `JOB_NAME` varchar(190) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `JOB_GROUP` varchar(190) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `IS_NONCONCURRENT` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `REQUESTS_RECOVERY` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,
  PRIMARY KEY (`SCHED_NAME`,`ENTRY_ID`),
  KEY `IDX_QRTZ_FT_TRIG_INST_NAME` (`SCHED_NAME`,`INSTANCE_NAME`),
  KEY `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY` (`SCHED_NAME`,`INSTANCE_NAME`,`REQUESTS_RECOVERY`),
  KEY `IDX_QRTZ_FT_J_G` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
  KEY `IDX_QRTZ_FT_JG` (`SCHED_NAME`,`JOB_GROUP`),
  KEY `IDX_QRTZ_FT_T_G` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
  KEY `IDX_QRTZ_FT_TG` (`SCHED_NAME`,`TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_job_details`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_job_details`;
CREATE TABLE `qrtz_job_details` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `JOB_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `JOB_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `DESCRIPTION` varchar(250) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `JOB_CLASS_NAME` varchar(250) COLLATE utf8mb4_general_ci NOT NULL,
  `IS_DURABLE` varchar(1) COLLATE utf8mb4_general_ci NOT NULL,
  `IS_NONCONCURRENT` varchar(1) COLLATE utf8mb4_general_ci NOT NULL,
  `IS_UPDATE_DATA` varchar(1) COLLATE utf8mb4_general_ci NOT NULL,
  `REQUESTS_RECOVERY` varchar(1) COLLATE utf8mb4_general_ci NOT NULL,
  `JOB_DATA` blob,
  PRIMARY KEY (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
  KEY `IDX_QRTZ_J_REQ_RECOVERY` (`SCHED_NAME`,`REQUESTS_RECOVERY`),
  KEY `IDX_QRTZ_J_GRP` (`SCHED_NAME`,`JOB_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_locks`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_locks`;
CREATE TABLE `qrtz_locks` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `LOCK_NAME` varchar(40) COLLATE utf8mb4_general_ci NOT NULL,
  PRIMARY KEY (`SCHED_NAME`,`LOCK_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Records of `qrtz_locks`
-- ----------------------------
BEGIN;
INSERT INTO `qrtz_locks` VALUES ('scheduler', 'TRIGGER_ACCESS');
COMMIT;

-- ----------------------------
--  Table structure for `qrtz_paused_trigger_grps`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_paused_trigger_grps`;
CREATE TABLE `qrtz_paused_trigger_grps` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_scheduler_state`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_scheduler_state`;
CREATE TABLE `qrtz_scheduler_state` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `INSTANCE_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `LAST_CHECKIN_TIME` bigint NOT NULL,
  `CHECKIN_INTERVAL` bigint NOT NULL,
  PRIMARY KEY (`SCHED_NAME`,`INSTANCE_NAME`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_simple_triggers`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simple_triggers`;
CREATE TABLE `qrtz_simple_triggers` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `REPEAT_COUNT` bigint NOT NULL,
  `REPEAT_INTERVAL` bigint NOT NULL,
  `TIMES_TRIGGERED` bigint NOT NULL,
  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
  CONSTRAINT `qrtz_simple_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_simprop_triggers`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_simprop_triggers`;
CREATE TABLE `qrtz_simprop_triggers` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `STR_PROP_1` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `STR_PROP_2` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `STR_PROP_3` varchar(512) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `INT_PROP_1` int DEFAULT NULL,
  `INT_PROP_2` int DEFAULT NULL,
  `LONG_PROP_1` bigint DEFAULT NULL,
  `LONG_PROP_2` bigint DEFAULT NULL,
  `DEC_PROP_1` decimal(13,4) DEFAULT NULL,
  `DEC_PROP_2` decimal(13,4) DEFAULT NULL,
  `BOOL_PROP_1` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `BOOL_PROP_2` varchar(1) COLLATE utf8mb4_general_ci DEFAULT NULL,
  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
  CONSTRAINT `qrtz_simprop_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `qrtz_triggers` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `qrtz_triggers`
-- ----------------------------
DROP TABLE IF EXISTS `qrtz_triggers`;
CREATE TABLE `qrtz_triggers` (
  `SCHED_NAME` varchar(120) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `JOB_NAME` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `JOB_GROUP` varchar(190) COLLATE utf8mb4_general_ci NOT NULL,
  `DESCRIPTION` varchar(250) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `NEXT_FIRE_TIME` bigint DEFAULT NULL,
  `PREV_FIRE_TIME` bigint DEFAULT NULL,
  `PRIORITY` int DEFAULT NULL,
  `TRIGGER_STATE` varchar(16) COLLATE utf8mb4_general_ci NOT NULL,
  `TRIGGER_TYPE` varchar(8) COLLATE utf8mb4_general_ci NOT NULL,
  `START_TIME` bigint NOT NULL,
  `END_TIME` bigint DEFAULT NULL,
  `CALENDAR_NAME` varchar(190) COLLATE utf8mb4_general_ci DEFAULT NULL,
  `MISFIRE_INSTR` smallint DEFAULT NULL,
  `JOB_DATA` blob,
  PRIMARY KEY (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`),
  KEY `IDX_QRTZ_T_J` (`SCHED_NAME`,`JOB_NAME`,`JOB_GROUP`),
  KEY `IDX_QRTZ_T_JG` (`SCHED_NAME`,`JOB_GROUP`),
  KEY `IDX_QRTZ_T_C` (`SCHED_NAME`,`CALENDAR_NAME`),
  KEY `IDX_QRTZ_T_G` (`SCHED_NAME`,`TRIGGER_GROUP`),
  KEY `IDX_QRTZ_T_STATE` (`SCHED_NAME`,`TRIGGER_STATE`),
  KEY `IDX_QRTZ_T_N_STATE` (`SCHED_NAME`,`TRIGGER_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
  KEY `IDX_QRTZ_T_N_G_STATE` (`SCHED_NAME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
  KEY `IDX_QRTZ_T_NEXT_FIRE_TIME` (`SCHED_NAME`,`NEXT_FIRE_TIME`),
  KEY `IDX_QRTZ_T_NFT_ST` (`SCHED_NAME`,`TRIGGER_STATE`,`NEXT_FIRE_TIME`),
  KEY `IDX_QRTZ_T_NFT_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`),
  KEY `IDX_QRTZ_T_NFT_ST_MISFIRE` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_STATE`),
  KEY `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP` (`SCHED_NAME`,`MISFIRE_INSTR`,`NEXT_FIRE_TIME`,`TRIGGER_GROUP`,`TRIGGER_STATE`),
  CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

-- ----------------------------
--  Table structure for `resource`
-- ----------------------------
DROP TABLE IF EXISTS `resource`;
CREATE TABLE `resource` (
  `resource_id` bigint NOT NULL AUTO_INCREMENT,
  `category_id` bigint DEFAULT NULL COMMENT '资源分类ID',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `name` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '资源名称',
  `url` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '资源URL',
  `description` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述',
  PRIMARY KEY (`resource_id`)
) ENGINE=InnoDB AUTO_INCREMENT=54 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='后台资源表';

-- ----------------------------
--  Records of `resource`
-- ----------------------------
BEGIN;
INSERT INTO `resource` VALUES ('2', '3', '2022-03-31 00:42:43', '文章列表查询', '/posts/queryPageable', '查询文章列表的权限'), ('3', '3', '2022-03-31 00:43:20', '新增保存文章', '/posts/insert', '创建文章保存文章'), ('4', '3', '2022-03-31 00:44:07', '更新保存文章', '/posts/update', '保存文章更新内容'), ('5', '6', '2022-03-31 00:57:17', '用户登录', '/users/login', '用户登录系统必须接口'), ('7', '3', '2022-04-03 23:11:37', '删除文章', '/posts/delete', '文章列表页、编辑页面删除文章使用'), ('8', '3', '2022-04-03 23:36:01', '查询文章详情', '/posts/getById', '创建、编辑文章使用'), ('9', '3', '2022-04-03 23:39:49', '查询文章标签列表', '/postTag/queryPageable', '文章列表上方的检索条件，加载的方法'), ('10', '3', '2022-04-03 23:41:49', '绑定文章到专栏', '/posts/insertPostTermTaxonomy', '分配文章到专栏的保存方法'), ('11', '5', '2022-04-04 00:22:13', '查询专栏树', '/termTaxonomy/getPyParentId', ''), ('12', '5', '2022-04-04 00:22:42', '查询专栏详情', '/termTaxonomy/getById', ''), ('13', '5', '2022-04-04 00:24:11', '新增保存专栏', '/termTaxonomy/insert', ''), ('14', '5', '2022-04-04 00:24:32', '更新保存文章', '/termTaxonomy/update', ''), ('15', '5', '2022-04-04 00:24:57', '删除专栏', '/termTaxonomy/delete', ''), ('16', '10', '2022-04-04 00:25:31', '查询站点配置信息', '/site/getById', ''), ('17', '10', '2022-04-04 00:25:58', '保存站点配置信息', '/site/update', ''), ('18', '6', '2022-04-04 00:28:13', '获得当前登陆用户的信息', '/users/info', ''), ('19', '6', '2022-04-04 00:28:39', '用户退出系统', '/users/logout', ''), ('20', '6', '2022-04-04 00:29:09', '用户修改密码', '/users/updatePassword', ''), ('21', '9', '2022-04-04 00:29:59', '用户列表查询', '/users/queryPageable', ''), ('22', '9', '2022-04-04 00:30:30', '查询用户详情', '/users/getById', ''), ('23', '9', '2022-04-04 00:33:19', '新增保存用户', '/users/register', ''), ('24', '9', '2022-04-04 00:33:43', '更新保存用户', '/users/update', ''), ('25', '9', '2022-04-04 00:34:08', '删除用户', '/users/delete', ''), ('26', '9', '2022-04-04 00:34:55', '修改用户状态', '/users/enableOrDisable', ''), ('27', '9', '2022-04-04 00:35:18', '查询用户角色', '/users/role', ''), ('28', '9', '2022-04-04 00:35:47', '保存用户角色', '/users/role/update', ''), ('29', '7', '2022-04-04 00:36:41', '查询资源分类列表', '/resourceCategory/listAll', ''), ('30', '7', '2022-04-04 00:37:14', '新增保存分类', '/resourceCategory/insert', ''), ('31', '7', '2022-04-04 00:37:31', '更新保存分类', '/resourceCategory/update', ''), ('32', '7', '2022-04-04 00:37:53', '删除资源分类', '/resourceCategory/delete', ''), ('33', '8', '2022-04-04 00:38:54', '查询资源列表', '/resource/queryPageable', ''), ('34', '8', '2022-04-04 00:39:24', '查询资源详情', '/resource/id', ''), ('35', '8', '2022-04-04 00:39:44', '新增保存资源', '/resource/create', ''), ('36', '8', '2022-04-04 00:40:00', '更新保存资源', '/resource/update', ''), ('37', '8', '2022-04-04 00:40:21', '删除资源', '/resource/delete', ''), ('38', '12', '2022-04-04 00:43:05', '查询角色列表', '/role/queryPageable', ''), ('39', '12', '2022-04-04 00:44:06', '新增保存角色', '/role/create', ''), ('40', '12', '2022-04-04 00:44:27', '更新保存角色', '/role/update', ''), ('41', '12', '2022-04-04 00:44:53', '删除角色', '/role/delete', ''), ('42', '12', '2022-04-04 00:45:24', '修改角色状态', '/role/updateStatus', ''), ('43', '12', '2022-04-04 00:46:54', '查询角色菜单', '/role/listMenu', ''), ('44', '12', '2022-04-04 00:47:21', '保存角色菜单', '/role/allocMenu', ''), ('45', '12', '2022-04-04 00:47:59', '查询角色资源', '/role/listResource', ''), ('46', '12', '2022-04-04 00:48:24', '保存角色资源', '/role/allocResource', ''), ('47', '13', '2022-04-04 00:49:23', '查询全部菜单', '/menu/treeList', ''), ('48', '13', '2022-04-04 00:49:48', '查询菜单详情', '/menu', ''), ('49', '13', '2022-04-04 00:50:26', '新增保存菜单', '/menu/create', ''), ('50', '13', '2022-04-04 00:50:46', '更新保存菜单', '/menu/update', ''), ('51', '13', '2022-04-04 00:51:08', '删除菜单', '/menu/delete', ''), ('52', '13', '2022-04-04 00:51:56', '更新菜单显示状态', '/menu/updateHidden', '');
COMMIT;

-- ----------------------------
--  Table structure for `resource_category`
-- ----------------------------
DROP TABLE IF EXISTS `resource_category`;
CREATE TABLE `resource_category` (
  `resource_category_id` bigint NOT NULL AUTO_INCREMENT,
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `name` varchar(200) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '分类名称',
  `sort` int DEFAULT NULL COMMENT '排序',
  PRIMARY KEY (`resource_category_id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='资源分类表';

-- ----------------------------
--  Records of `resource_category`
-- ----------------------------
BEGIN;
INSERT INTO `resource_category` VALUES ('3', '2022-03-31 00:21:32', '文章管理', '0'), ('5', '2022-03-31 00:22:05', '专栏管理', '0'), ('6', '2022-03-31 00:22:30', '用户通用', '0'), ('7', '2022-03-31 00:22:49', '资源分类管理', '0'), ('8', '2022-03-31 00:22:54', '资源管理', '0'), ('9', '2022-03-31 00:23:08', '用户管理', '0'), ('10', '2022-03-31 00:23:19', '站点配置', '0'), ('12', '2022-04-04 00:41:18', '角色管理', '0'), ('13', '2022-04-04 00:41:24', '菜单管理', '0');
COMMIT;

-- ----------------------------
--  Table structure for `role`
-- ----------------------------
DROP TABLE IF EXISTS `role`;
CREATE TABLE `role` (
  `role_id` bigint NOT NULL AUTO_INCREMENT,
  `name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '名称',
  `description` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '描述',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `status` int DEFAULT '1' COMMENT '启用状态：0->禁用；1->启用',
  PRIMARY KEY (`role_id`)
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='后台用户角色表';

-- ----------------------------
--  Records of `role`
-- ----------------------------
BEGIN;
INSERT INTO `role` VALUES ('4', '内容管理员', '只能发布编辑文章', '2022-04-05 12:11:35', '1'), ('5', '总编管理员', '发布编辑文章还可以对文章进行归类', '2022-04-05 12:11:46', '1'), ('6', '超级管理员', '拥有至高无上的权力', '2022-04-05 12:11:54', '1'), ('8', '体验者', '开放给体验者', '2022-05-04 21:32:50', '1'), ('9', '无任何权限', '', '2022-05-05 00:08:18', '1');
COMMIT;

-- ----------------------------
--  Table structure for `role_menu_relation`
-- ----------------------------
DROP TABLE IF EXISTS `role_menu_relation`;
CREATE TABLE `role_menu_relation` (
  `role_menu_relation_id` bigint NOT NULL AUTO_INCREMENT,
  `role_id` bigint DEFAULT NULL COMMENT '角色ID',
  `menu_id` bigint DEFAULT NULL COMMENT '菜单ID',
  PRIMARY KEY (`role_menu_relation_id`)
) ENGINE=InnoDB AUTO_INCREMENT=68 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='后台角色菜单关系表';

-- ----------------------------
--  Records of `role_menu_relation`
-- ----------------------------
BEGIN;
INSERT INTO `role_menu_relation` VALUES ('21', '1', '10'), ('22', '1', '11'), ('23', '1', '12'), ('24', '1', '13'), ('25', '1', '14'), ('26', '1', '15'), ('27', '1', '16'), ('28', '1', null), ('29', '4', '3'), ('30', '4', '4'), ('31', '4', '9'), ('32', '4', null), ('44', '5', '4'), ('45', '5', '9'), ('46', '5', '21'), ('47', '5', '3'), ('52', '6', '3'), ('53', '6', '4'), ('54', '6', '9'), ('55', '6', '20'), ('56', '6', '21'), ('57', '6', '10'), ('58', '6', '11'), ('59', '6', '12'), ('60', '6', '13'), ('61', '6', '14'), ('62', '6', '15'), ('63', '6', '16'), ('64', '6', null), ('65', '8', '9'), ('66', '8', '21'), ('67', '8', '3');
COMMIT;

-- ----------------------------
--  Table structure for `role_resource_relation`
-- ----------------------------
DROP TABLE IF EXISTS `role_resource_relation`;
CREATE TABLE `role_resource_relation` (
  `role_resource_relation_id` bigint NOT NULL AUTO_INCREMENT,
  `role_id` bigint DEFAULT NULL COMMENT '角色ID',
  `resource_id` bigint DEFAULT NULL COMMENT '资源ID',
  PRIMARY KEY (`role_resource_relation_id`)
) ENGINE=InnoDB AUTO_INCREMENT=202 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='后台角色资源关系表';

-- ----------------------------
--  Records of `role_resource_relation`
-- ----------------------------
BEGIN;
INSERT INTO `role_resource_relation` VALUES ('18', '3', '2'), ('19', '3', '3'), ('20', '3', '4'), ('21', '3', '8'), ('22', '3', '9'), ('23', '3', '10'), ('24', '3', '11'), ('25', '3', '12'), ('26', '3', '13'), ('27', '3', '14'), ('28', '3', '29'), ('29', '3', '30'), ('30', '3', '31'), ('31', '3', '32'), ('32', '3', '33'), ('33', '3', '34'), ('34', '3', '35'), ('35', '3', '36'), ('36', '3', '37'), ('60', '1', '3'), ('61', '1', '8'), ('62', '1', '9'), ('63', '1', '4'), ('64', '1', '2'), ('65', '1', '11'), ('66', '1', '12'), ('67', '1', '13'), ('68', '1', '14'), ('69', '1', '15'), ('70', '1', '5'), ('71', '1', '18'), ('72', '1', '19'), ('73', '1', '20'), ('74', '1', '39'), ('75', '7', '3'), ('89', '6', '2'), ('90', '6', '3'), ('91', '6', '4'), ('92', '6', '5'), ('93', '6', '7'), ('94', '6', '8'), ('95', '6', '9'), ('96', '6', '10'), ('97', '6', '11'), ('98', '6', '12'), ('99', '6', '13'), ('100', '6', '14'), ('101', '6', '15'), ('102', '6', '16'), ('103', '6', '17'), ('104', '6', '18'), ('105', '6', '19'), ('106', '6', '20'), ('107', '6', '21'), ('108', '6', '22'), ('109', '6', '23'), ('110', '6', '24'), ('111', '6', '25'), ('112', '6', '26'), ('113', '6', '27'), ('114', '6', '28'), ('115', '6', '29'), ('116', '6', '30'), ('117', '6', '31'), ('118', '6', '32'), ('119', '6', '33'), ('120', '6', '34'), ('121', '6', '35'), ('122', '6', '36'), ('123', '6', '37'), ('124', '6', '38'), ('125', '6', '39'), ('126', '6', '40'), ('127', '6', '41'), ('128', '6', '42'), ('129', '6', '43'), ('130', '6', '44'), ('131', '6', '45'), ('132', '6', '46'), ('133', '6', '47'), ('134', '6', '48'), ('135', '6', '49'), ('136', '6', '50'), ('137', '6', '51'), ('138', '6', '52'), ('152', '4', '2'), ('153', '4', '3'), ('154', '4', '4'), ('155', '4', '7'), ('156', '4', '8'), ('157', '4', '9'), ('158', '4', '10'), ('159', '4', '5'), ('160', '4', '18'), ('161', '4', '19'), ('162', '4', '20'), ('188', '9', '5'), ('189', '9', '18'), ('190', '9', '19'), ('191', '9', '20'), ('200', '8', '9'), ('201', '8', '2');
COMMIT;

-- ----------------------------
--  Table structure for `site`
-- ----------------------------
DROP TABLE IF EXISTS `site`;
CREATE TABLE `site` (
  `site_id` bigint NOT NULL AUTO_INCREMENT COMMENT 'site_id',
  `site_name` varchar(100) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '名称',
  `keywords` varchar(500) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '关键字',
  `site_desc` varchar(1000) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '介绍',
  `attribute` json DEFAULT NULL COMMENT '属性',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (`site_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='站点配置';

-- ----------------------------
--  Records of `site`
-- ----------------------------
BEGIN;
INSERT INTO `site` VALUES ('1', '编程进阶网', 'Code|Coding|编程|学习编程|编程学习|编程学习网|编程进阶|新手编程|Java|Spring Boot|Spring|JVM', '学编程，就上编程进阶网！助力每一个Java程序员构建属于自己的知识体系。包括但不限于Java、设计模式、计算机网络、操作系统、数据库、数据结构与算法、大数据、架构、面试等等。', '{\"email\": \"\", \"psInfo\": \"豫公网安备 41030502000411号\", \"address\": \"\", \"icpInfo\": \"豫ICP备2021038026号-2\", \"contactNumber\": \"\", \"copyrightInfo\": \"沉默王二/石磊/谷明\"}', '2022-03-31 17:15:07');
COMMIT;

-- ----------------------------
--  Table structure for `term_relationships`
-- ----------------------------
DROP TABLE IF EXISTS `term_relationships`;
CREATE TABLE `term_relationships` (
  `term_relationships_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '对应文章ID/链接ID',
  `term_taxonomy_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '栏目ID',
  `term_order` int NOT NULL DEFAULT '0' COMMENT '排序',
  `type` int NOT NULL COMMENT '类型,0:内容,1:链接',
  PRIMARY KEY (`term_relationships_id`,`term_taxonomy_id`,`type`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='文章栏目关系表';

-- ----------------------------
--  Records of `term_relationships`
-- ----------------------------
BEGIN;
INSERT INTO `term_relationships` VALUES ('1', '1', '0', '1'), ('1', '2', '0', '1'), ('1', '3', '0', '1'), ('1', '4', '0', '1'), ('2', '1', '0', '1'), ('2', '2', '0', '1'), ('2', '3', '0', '1'), ('2', '4', '0', '1'), ('3', '1', '0', '1'), ('3', '2', '0', '1'), ('3', '3', '0', '1'), ('3', '4', '0', '1'), ('7', '6', '0', '1'), ('11', '6', '0', '1'), ('12', '3', '1', '1'), ('13', '3', '0', '1'), ('14', '3', '1', '1'), ('16', '6', '0', '1'), ('17', '6', '0', '1'), ('18', '6', '0', '1'), ('29', '1', '2', '1'), ('30', '1', '2', '1'), ('42', '3', '1', '1');
COMMIT;

-- ----------------------------
--  Table structure for `term_taxonomy`
-- ----------------------------
DROP TABLE IF EXISTS `term_taxonomy`;
CREATE TABLE `term_taxonomy` (
  `term_taxonomy_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'id',
  `description` longtext COLLATE utf8mb4_unicode_520_ci COMMENT '说明',
  `name` varchar(20) COLLATE utf8mb4_unicode_520_ci NOT NULL COMMENT '栏目名称',
  `parent_id` bigint unsigned NOT NULL DEFAULT '0' COMMENT '父栏目id',
  `create_user_id` bigint DEFAULT NULL COMMENT '创建人id',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `update_time` datetime DEFAULT NULL COMMENT '更新时间',
  `attribute` json DEFAULT NULL COMMENT '属性',
  PRIMARY KEY (`term_taxonomy_id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='栏目';

-- ----------------------------
--  Records of `term_taxonomy`
-- ----------------------------
BEGIN;
INSERT INTO `term_taxonomy` VALUES ('3', '', '11', '2', '4', '2022-02-09 13:19:39', '2022-02-09 13:21:53', null), ('4', '1', '1', '3', '4', '2022-02-09 13:20:01', null, null), ('6', '测试栏目1测试栏目1测试栏目1\n测试栏目1测试栏目1', 'Java 程序员进阶之路', '0', '5', '2022-02-12 17:12:35', '2022-03-21 11:39:34', null), ('7', '测试栏目2测试栏目2测试栏目2\n测试栏目2测试栏目2测试栏目2', '编程进阶网', '0', '5', '2022-02-12 17:12:44', '2022-03-21 11:40:03', null), ('8', '测试栏目3测试栏目3测试栏目3\n测试栏目3测试栏目3', '测试栏目3', '0', '5', '2022-02-12 17:12:53', null, null), ('9', '测试栏目1-1', '测试栏目1-1', '6', '5', '2022-02-12 17:13:03', null, null), ('10', '测试栏目1-2', '测试栏目1-2', '6', '5', '2022-02-12 17:13:11', null, null), ('11', '测试栏目1-3', '测试栏目1-3', '6', '5', '2022-02-12 17:13:16', null, null), ('12', '测试栏目1-4', '测试栏目1-4', '6', '5', '2022-02-12 17:13:22', null, null), ('13', '1', '1', '2', '4', '2022-02-13 08:54:03', null, '{\"help\": \"message\"}'), ('14', '这不是糊弄吗？手动 dog', '未分类', '0', '1', '2022-02-19 12:20:48', '2022-03-21 11:36:23', null);
COMMIT;

-- ----------------------------
--  Table structure for `users`
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `users_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT 'users_id',
  `user_login` varchar(60) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '登录名',
  `user_pass` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '密码',
  `user_nicename` varchar(50) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '昵称',
  `user_email` varchar(100) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT 'Email',
  `user_url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '网址',
  `user_registered` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '注册时间',
  `user_activation_key` varchar(255) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '激活码',
  `user_status` int NOT NULL DEFAULT '0' COMMENT '用户状态',
  `display_name` varchar(250) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT '图像',
  `user_type` int DEFAULT NULL COMMENT '用户类型 0 :后台 1：前端',
  `open_id` varchar(250) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL COMMENT 'open_id',
  `attribute` json DEFAULT NULL COMMENT '属性',
  PRIMARY KEY (`users_id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci COMMENT='用户表';

-- ----------------------------
--  Records of `users`
-- ----------------------------
BEGIN;
INSERT INTO `users` VALUES ('1', 'wanger', '$2a$10$vLiCtUbjc8NYpqW8p0s/aeM66diDVFigtpmgEwrLrSPNauRqozWta', '沉默王二', '', 'https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-15/cdeebbe9-6dad-41e3-b7ac-f8ad1daa4b45.png', '2022-02-07 17:50:45', null, '0', 'image', '0', null, null), ('2', 'wangsan', '$2a$10$sF7jL03pRdRlVE/UVsTg3u5stm1z1gAnXbC6IuWanW0B7DjtaQOjO', 'wangsan', '983436076@qq.com', 'https://cdn.tobebetterjavaer.com/itwanger/itwanger.jpg', '2022-02-07 17:50:55', null, '0', null, '0', null, null), ('4', 'zhanglei', '$2a$10$9R./v/wYxWUOJyHfGe4DQuXhVgHjqkTPKv1bzvzMIhi86dAROmiEG', '张磊', null, 'baidu', '2022-02-09 12:52:17', null, '0', 'image', '0', null, null), ('5', 'guming', '$2a$10$CuW8ZfOOWZ6iw3CV/BhpdONUB4U3QCpS03Dn8UnoV.Yaj7kreEo0O', '奥拉沃坎迪', 'mforwow@126.com', 'https://cdn.tobebetterjavaer.com/itwanger/itwanger.jpg', '2022-02-09 22:15:17', null, '0', null, '0', null, null), ('7', 'chenmo', '$2a$10$sfBzOARqw9RFRVvLpA0igONoxzv5USz/eFbgugMUGdEmDRcBeLk9S', '沉默', '123456', '', '2022-04-06 16:03:10', null, '0', '', '0', null, null), ('11', 'ceshi1', '$2a$10$sF7jL03pRdRlVE/UVsTg3u5stm1z1gAnXbC6IuWanW0B7DjtaQOjO', 'ceshi1', 'ceshi1@123.com', '', '2022-05-04 21:33:21', null, '0', '', '0', null, null), ('12', 'ceshi2', '$2a$10$sF7jL03pRdRlVE/UVsTg3u5stm1z1gAnXbC6IuWanW0B7DjtaQOjO', 'ceshi2', 'ceshi2@123.com', '', '2022-05-05 00:09:06', null, '0', '', '0', null, null), ('13', 'xjp', '$2a$10$.XuUrS9ZYDnBttBX.EzCrOU/I.3kmzw62T.xDlc8TkIThU4jkvlh6', 'xjp', '1@163.com', '', '2022-05-13 15:25:49', null, '0', '', '0', null, null), ('14', 'admin', '$2a$10$qfwsgJd3Dvzqtv7Uftg4lOvg.ajxqXXcTYFRwfdj0Kk.w9qnkZZTe', '沉默王二的狗腿子', '', 'https://cdn.tobebetterjavaer.com/codingmore/images/2022-05-15/9c6cb39d-6f5a-4e4a-92f7-9fe46b19a64c.png', '2022-05-15 11:06:29', null, '0', '', '0', null, null);
COMMIT;

SET FOREIGN_KEY_CHECKS = 1;
